- ©«¤l
- 20
- ¥DÃD
- 18
- ºëµØ
- 0
- ¿n¤À
- 43
- ÂI¦W
- 0
- §@·~¨t²Î
- windows xp
- ³nÅ骩¥»
- Office 2003
- ¾\ŪÅv
- 10
- ©Ê§O
- ¨k
- µù¥U®É¶¡
- 2011-9-5
- ³Ì«áµn¿ý
- 2011-9-6
|
VB.NET ¤¶±(Interface)
¤¶±(Interface)
Constract(¦X¬ù)
©w¸qMethod³W¹º
*¥iÂX¥R Aggregation(»E¦X)
¤¶± 1
'¤¶±¦X¬ù(¥\¯à-µ{§Ç(method or porperty)¦X¬ù
2 Public Interface IWork
3 '©wÀ³¤u§@¦X¬ù³W½d¹w³]¬°©â¶H
4 Sub working(ByVal thing As String)
5 End Interface
¤¶± 2
view sourceprint?1 Public Interface ISales
2 '·~°È±À¼s
3 Sub Promotion()
4
5 End Interface
¹ê§@¤¶±Ãþ§O1 : ¹ê§@ ¤¶±1
view sourceprint?1 '¹ê§@¤¶±
2 Public Class Employee
3 Implements IWork
4 '¤u§@¯à¤O
5 Public Sub working(ByVal thing As String) Implements IWork.working
6 System.Console.WriteLine(String.Format("°µ...{0} ¦ó®É:{1:D}", thing, DateTime.Now))
7 End Sub
8 End Class
¹ê§@¤¶±Ãþ§O2 : ¹ê§@ ¤¶±1©M¤¶±2
view sourceprint?01 Public Class KHHEmployee
02 '¹ê°µ¦P¼Ëªº¤¶±
03 Implements IWork, ISales
04
05 '¤u§@
06 Public Sub working(ByVal thing As String) Implements IWork.working
07 System.Console.WriteLine(String.Format("KHHû¤u °µ...{0} ¦ó®É:{1:D}", thing, DateTime.Now))
08 End Sub
09 '·~°È±À¼s
10 Public Sub Promotion() Implements ISales.Promotion
11 System.Console.WriteLine("KHH·~°È±À¼s!!")
12 End Sub
13 End Class
Agent :¥N²z
view sourceprint?01 Public Class Company
02 'Aggregation¨Ì¦sÃö«Y(Pull©Ô¦¡)
03 '¤½¥q½Ð¹L¨Ó¤H¤O¥ò¤¶
04 Private _service As WorkingService = New WorkingService()
05 'ÄÝ©Ê ¨ú±oServicer
06 'Public ReadOnly Property Service() As WorkingService
07 ' Get
08 ' Return _service
09 ' End Get
10
11 'End Property
12 'µ¡¤fMethod(Proxy) ¥N²zȦæworkingService.addEmployee()
13 Public Sub addEmployee(ByVal emp As IWork)
14 If (Not emp Is Nothing) Then
15 _service.addEmployee(emp)
16 End If
17 End Sub
18 'n¨D©Ò¦³û¤u¤u§@
19 Public Sub doWork()
20 '±½´y¨C¤@Ó¤£¦PÃþ«¬û¤u(¨S¦³Ä~©ÓÃö«Y)
21 For Each w As IWork In _service.Employees
22 '§PÂ_¯S®íÃþ«¬ª«¥ó
23 If TypeOf w Is KHHEmployee Then
24 w.working("¸ê°T¤u§@...")
25 '¹ê°µ·~°È¤¶±
26 DirectCast(w, ISales).Promotion()
27 Else
28 w.working("¤u§@...")
29 End If
30 Next
31 End Sub
32 End Class
¥DnÃþ§O
view sourceprint?01 Public Class Company
02 'Aggregation¨Ì¦sÃö«Y(Pull©Ô¦¡)
03 '¤½¥q½Ð¹L¨Ó¤H¤O¥ò¤¶
04 Private _service As WorkingService = New WorkingService()
05 'ÄÝ©Ê ¨ú±oServicer
06 'Public ReadOnly Property Service() As WorkingService
07 ' Get
08 ' Return _service
09 ' End Get
10
11 'End Property
12 'µ¡¤fMethod(Proxy) ¥N²zȦæworkingService.addEmployee()
13 Public Sub addEmployee(ByVal emp As IWork)
14 If (Not emp Is Nothing) Then
15 _service.addEmployee(emp)
16 End If
17 End Sub
18 'n¨D©Ò¦³û¤u¤u§@
19 Public Sub doWork()
20 '±½´y¨C¤@Ó¤£¦PÃþ«¬û¤u(¨S¦³Ä~©ÓÃö«Y)
21 For Each w As IWork In _service.Employees
22 '§PÂ_¯S®íÃþ«¬ª«¥ó
23 If TypeOf w Is KHHEmployee Then
24 w.working("¸ê°T¤u§@...")
25 '¹ê°µ·~°È¤¶±
26 DirectCast(w, ISales).Promotion()
27 Else
28 w.working("¤u§@...")
29 End If
30 Next
31 End Sub
32 End Class
¥Dµ{¦¡
view sourceprint?01 Module TestCompany
02 '¥Dµ{¦¡
03 Public Sub Main()
04 '«Øºc¤½¥qª«¥ó->©Ô¥XWorkingService->List¶°¦Xª«¥ó
05 Dim com As New Company()
06 '¼x¨Dû¤u -°Ý¥X¤º³¡°Ñ¦ÒWorkingService
07 'Dim service As WorkingService = com.Service
08 '¥[û¤u
09 com.addEmployee(New Employee())
10 com.addEmployee(New KHHEmployee())
11 com.addEmployee(New Employee())
12
13 '¤½¥q©Ò¦³û¤u¤u§@
14 com.doWork()
15 End Sub
16 End Module |
|