Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdChrista Adam Laatst gewijzigd meer dan 9 jaar geleden
1
Interfaces Hoofdstuk 23 Hoofdstuk 23
2
Visual Basic .NET voor studenten
In dit hoofdstuk … Interfaces gebruiken voor de structuur van een programma Onderlinge aansluiting Interfaces versus abstracte klassen Visual Basic .NET voor studenten
3
Visual Basic .NET voor studenten
Inleiding Een interface beschrijft de uiterlijke verschijningsvorm van een klasse Iemand enig idee wat dit is? Niet te verwarren met grafische user interface Doel: Ondersteunen van het ontwerp Bevorderen van onderlinge aansluiting (eng: cohesion) Het concept interface bestaat eveneens in Java en C# Visual Basic .NET voor studenten Hoofdstuk 23
4
Interfaces voor ontwerp
Public Interface BalloonInterface Sub ChangeSize(ByVal newDiameter As Integer) Property XCoord() As Integer Sub Display(ByVal drawArea As Graphics) End Interface Geen Class sleutelwoord Geen access modifiers bij methoden en properties Dit is puur een beschrijving van diensten: uiterlijke verschijningsvorm van een klasse Het bevat geen implementatie! Visual Basic .NET voor studenten
5
Interfaces voor ontwerp
Public Class Balloon Implements BalloonInterface Private diameter, x, y As Integer Public Sub ChangeSize(ByVal newDiameter As Integer) _ Implements BalloonInterface.ChangeSize ... End Sub Public Sub Display(ByVal drawArea As Graphics) _ Implements BalloonInterface.Display Public Property XCoord() As Integer _ Implements BalloonInterface.XCoord ' implementatie End Property End Class Een klasse kan één of meerdere interfaces implementeren Elke implementerende methode moet expliciet de interface methode aangeven De klasse is verplicht om alle methodes en properties uit de interface te implementeren Visual Basic .NET voor studenten
6
Interfaces voor ontwerp
Interfaces kunnen ook overerven van andere interfaces Public Interface ColoredBalloonInterface Inherits BalloonInterface Property MyColor() As Color End Interface Visual Basic .NET voor studenten
7
Interfaces voor ontwerp
Interfaces worden vaak eerst uitgeschreven aan de hand van een analyse Vervolgens worden de interfaces verdeeld onder de programmeurs en geïmplementeerd Voorbeeld: Stel Jan moet interface BalloonInterface implementeren en Mieke moet GameInterface implementeren. Bovendien heeft Mieke de implementatie van BalloonInterface nodig. Omdat je werkt met interfaces hoeft Mieke niet te wachten en kan ze onmiddellijk starten met de implementatie van GameInterface, eventueel gebruik makend van een “Mock” implementatie van BalloonInterface. Een “Mock” implementatie is een zeer eenvoudige implementatie die weinig of geen functionaliteit bevat, maar louter als bedoeling heeft testen of verdere implementaties te bewerkstelligen. Visual Basic .NET voor studenten
8
Onderlinge aansluiting
Het afspreken van standaarden zorgt ervoor dat onderlinge uitwisselbaarheid verbetert, bijvoorbeeld: Stopcontacten Audio- en videoaansluitingen DVD standaarden … Het concept interface brengt deze voordelen naar de softwarewereld Visual Basic .NET voor studenten
9
Visual Basic .NET voor studenten
Voorbeeld Public Interface Displayable Sub Display(ByVal drawArea as Graphics) End Interface Alle klassen die moeten getekend kunnen worden moeten deze interface implementeren Public Class Square Implements Displayable Private x, y, size As Integer Public Sub Display(ByVal drawArea as Graphics) _ Implements Displayable.Display ... End Sub End Class Visual Basic .NET voor studenten
10
Visual Basic .NET voor studenten
Voorbeeld Het grote voordeel is dat het gedeelte van het programma dat vormen moet tekenen kan gebruik maken van polymorfie (en dus enkel op de hoogte moet zijn van de interface) Public Class DrawingProgram Private shapes as ArrayList ... Public Sub UpdateScreen() Dim index As Integer = 0 Dim shape As Displayable While index < shapes.Count shape = CType(shapes.Item(index), Displayable) shape.Display(myArea) index = index + 1 End While End Sub End Class Visual Basic .NET voor studenten
11
Visual Basic .NET voor studenten
Voorbeeld Public Class DrawingProgram Private shapes as ArrayList ... Public Sub UpdateScreen() Dim shape As Displayable For Each shape In shapes shape.Display(myArea) Next End Sub End Class Visual Basic .NET voor studenten
12
Toepassing van interfaces: IList
Een ListBox control heeft achter de schermen een klasse die de items beheert Deze klasse is een implementatie van een interface IList Visual Basic .NET voor studenten
13
Toepassing van interfaces: IList
Public Interface IList Inherits ICollection, IEnumerable ReadOnly Property IsFixedSize As Boolean ReadOnly Property IsReadOnly As Boolean Property Item(index As Integer) As Object Function Add(value As Object) As Integer Sub Clear() Function Contains(value As Object) As Boolean Function IndexOf(value As Object) As Integer Sub Insert(index As Integer, _ value As Object) Sub Remove(value As Object) Sub RemoveAt(index As Integer) End Interface Visual Basic .NET voor studenten
14
Verschil met abstracte klassen
Een abstracte klasse kan voor sommige methodes een implementatie voorzien, een interface kan dit nooit Een klasse kan meerdere interfaces implementeren, maar slechts van één (abstracte) klasse overerven Om over te erven hoeft de parent klasse niet abstract te zijn! Een interface zorgt al tijdens compilatie voor controle, bij een abstracte klasse wordt er pas tijdens executie gekoppeld met een concrete methode/property Een interface alleen wil nog niet zeggen dat deze zal gebruikt worden voor overerving Visual Basic .NET voor studenten
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.