|
Public MustInherit Class AbstractFactory Public MustOverride Function CreateProductA() Public MustOverride Function CreateProductB() End Class '抽象产品A Public MustInherit Class AbstractProductA Public MustOverride Sub ShowInfo() End Class '抽象产品B Public MustInherit Class AbstractProductB Public MustOverride Sub ShowInfo() Public MustOverride Sub Interact() End Class '实际工厂1,负责生产第一类别的产品 Public Class Factory1 Inherits AbstractFactory Public Overrides Function CreateProductA() Return New ProductA1() End Function Public Overrides Function CreateProductB() Return New ProductB1() End Function End Class '实际工厂2,负责生产第二类别的产品 Public Class Factory2 Inherits AbstractFactory Public Overrides Function CreateProductA() Return New ProductA2() End Function Public Overrides Function CreateProductB() Return New ProductB2() End Function End Class '第一类别中的实际产品A Public Class ProductA1 Inherits AbstractProductA Public Overrides Sub ShowInfo() Console.WriteLine("ProductA1 is running.") End Sub End Class '第一类别中的实际产品A Public Class ProductB1 Inherits AbstractProductB Public Overrides Sub ShowInfo() Console.WriteLine("ProductB1 is running.") End Sub Public Overrides Sub Interact(ByVal a As AbstractProductA) Console.WriteLine(Me.ToString & " interact with " & a.ToString) End Sub End Class '第二类别中的实际产品A Public Class ProductA2 Inherits AbstractProductA Public Overrides Sub ShowInfo() Console.WriteLine("ProductA2 is running.") End Sub End Class '第二类别中的实际产品B Public Class ProductB2 Inherits AbstractProductB Public Overrides Sub ShowInfo() Console.WriteLine("ProductB2 is running.") End Sub Public Overrides Sub Interact(ByVal a As AbstractProductA) Console.WriteLine(Me.ToString & " interact with " & a.ToString) End Sub End Class '产品A和产品B总是在一起使用 Public Class Environment Private productA As AbstractProductA Private productB As AbstractProductB Public Sub New(ByVal factory As AbstractFactory) productA = factory.CreateProductA() productB = factory.CreateProductB() End Sub Public Sub Run() productA.ShowInfo() productB.ShowInfo() productB.Interact(productA) End Sub End Class Public Module Client Sub Main() 'Get Environment1. Dim factory1 As AbstractFactory = New Factory1 Dim e1 As Environment = New Environment(factory1) e1.Run() 'Get Enviroment2. Dim factory2 As AbstractFactory = New Factory2 Dim e2 As Environment = New Environment(factory2) e2.Run() 'Waite User. Console.Read() End Sub End Module
|
一共有 0 条评论