- 帖子
- 20
- 主題
- 18
- 精華
- 0
- 積分
- 43
- 點名
- 0
- 作業系統
- windows xp
- 軟體版本
- Office 2003
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-9-5
- 最後登錄
- 2011-9-6
|
VB.NET 介面(Interface)
介面(Interface)
Constract(合約)
定義Method規劃
*可擴充 Aggregation(聚合)
介面 1
'介面合約(功能-程序(method or porperty)合約
2 Public Interface IWork
3 '定應工作合約規範預設為抽象
4 Sub working(ByVal thing As String)
5 End Interface
介面 2
view sourceprint?1 Public Interface ISales
2 '業務推廣
3 Sub Promotion()
4
5 End Interface
實作介面類別1 : 實作 介面1
view sourceprint?1 '實作介面
2 Public Class Employee
3 Implements IWork
4 '工作能力
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
實作介面類別2 : 實作 介面1和介面2
view sourceprint?01 Public Class KHHEmployee
02 '實做同樣的介面
03 Implements IWork, ISales
04
05 '工作
06 Public Sub working(ByVal thing As String) Implements IWork.working
07 System.Console.WriteLine(String.Format("KHH員工 做...{0} 何時:{1:D}", thing, DateTime.Now))
08 End Sub
09 '業務推廣
10 Public Sub Promotion() Implements ISales.Promotion
11 System.Console.WriteLine("KHH業務推廣!!")
12 End Sub
13 End Class
Agent :代理
view sourceprint?01 Public Class Company
02 'Aggregation依存關係(Pull拉式)
03 '公司請過來人力仲介
04 Private _service As WorkingService = New WorkingService()
05 '屬性 取得Servicer
06 'Public ReadOnly Property Service() As WorkingService
07 ' Get
08 ' Return _service
09 ' End Get
10
11 'End Property
12 '窗口Method(Proxy) 代理值行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 '要求所有員工工作
19 Public Sub doWork()
20 '掃描每一個不同類型員工(沒有繼承關係)
21 For Each w As IWork In _service.Employees
22 '判斷特殊類型物件
23 If TypeOf w Is KHHEmployee Then
24 w.working("資訊工作...")
25 '實做業務介面
26 DirectCast(w, ISales).Promotion()
27 Else
28 w.working("工作...")
29 End If
30 Next
31 End Sub
32 End Class
主要類別
view sourceprint?01 Public Class Company
02 'Aggregation依存關係(Pull拉式)
03 '公司請過來人力仲介
04 Private _service As WorkingService = New WorkingService()
05 '屬性 取得Servicer
06 'Public ReadOnly Property Service() As WorkingService
07 ' Get
08 ' Return _service
09 ' End Get
10
11 'End Property
12 '窗口Method(Proxy) 代理值行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 '要求所有員工工作
19 Public Sub doWork()
20 '掃描每一個不同類型員工(沒有繼承關係)
21 For Each w As IWork In _service.Employees
22 '判斷特殊類型物件
23 If TypeOf w Is KHHEmployee Then
24 w.working("資訊工作...")
25 '實做業務介面
26 DirectCast(w, ISales).Promotion()
27 Else
28 w.working("工作...")
29 End If
30 Next
31 End Sub
32 End Class
主程式
view sourceprint?01 Module TestCompany
02 '主程式
03 Public Sub Main()
04 '建構公司物件->拉出WorkingService->List集合物件
05 Dim com As New Company()
06 '徵求員工 -問出內部參考WorkingService
07 'Dim service As WorkingService = com.Service
08 '加員工
09 com.addEmployee(New Employee())
10 com.addEmployee(New KHHEmployee())
11 com.addEmployee(New Employee())
12
13 '公司所有員工工作
14 com.doWork()
15 End Sub
16 End Module |
|