抽象工厂





0/5 (0投票)
抽象工厂 :“四人帮” 对此设计模式的定义是:“提供一个创建相关或依赖对象族的接口”
抽象工厂
该设计模式的“四人帮”定义是:“提供一个创建相关或依赖对象系列的接口,而无需指定它们的具体类”。
抽象工厂设计模式的 VB 示例
' 此代码可以在后台页面级别运行
Dim aCarFactoryAsCarFactory (汽车工厂)
' 理想情况下,我们会使用工厂设计模式
' 但为了简单起见,我省略了这一点
If一个变量 ="福特" 那么
aCarFactory =新建FordCarFactory (福特汽车工厂)
Else
aCarFactory =新建VauxhallCarFactory (沃克斯豪尔汽车工厂)
End If
DimaFamilyCar1AsICar = aCarFactory.CreateFamilyCar (创建家庭车)
DimaFamilyCar2AsICar = aCarFactory.CreateFamilyCar (创建家庭车)
' 构建一辆城市车
DimaCityCarAsICar = aCarFactory.CreateCityCar (创建城市车)
' 基类 Car Factory (汽车工厂)
Public MustInherit 类CarFactory (汽车工厂)
Public MustOverride (必须重写) 函数CreateFamilyCar() (创建家庭车)AsICar (接口汽车)
End 类
' 具体的福特汽车工厂
Public 类FordCarFactory (福特汽车工厂)
继承自CarFactory (汽车工厂)
Public (公共) Overrides 函数CreateCityCar() (创建城市车)AsICar (接口汽车)
返回 新建FordCityCar (福特城市车)
End 函数
返回 新建FordFamilyCar (福特家庭车)
End 函数
End 类
' 具体的沃克斯豪尔汽车工厂
Public 类VauxhallCarFactory (沃克斯豪尔汽车工厂)
继承自CarFactory (汽车工厂)
Public (公共) Overrides 函数CreateCityCar() (创建城市车)AsICar (接口汽车)
返回 新建VauxhallCityCar (沃克斯豪尔城市车)
End 函数
返回 新建VauxhallFamilyCar (沃克斯豪尔家庭车)
End 函数
End 类
' 汽车接口,所有汽车都必须实现这些方法
Public 接口ICar (接口汽车)
SubDrive() (驾驶)
Function (函数)Desc() (描述)As 字符串
End 接口
' 具体的福特家庭车
Public 类FordFamilyCar (福特家庭车)
实现ICar (接口汽车)
Public (公共) SubDrive() (驾驶)实现ICar.Drive (接口汽车.驾驶)
' 驾驶汽车
End Sub
返回 "Ford Family Car seats 8" (福特家庭车可容纳 8 人)
End 函数
End 类
' 具体的福特城市车
Public 类FordCityCar (福特城市车)
实现ICar (接口汽车)
Public (公共) SubDrive() (驾驶)实现ICar.Drive (接口汽车.驾驶)
' 驾驶汽车
End Sub
返回 "Ford Ciy Car seats 2" (福特城市车可容纳 2 人)
End 函数
End 类
' 具体的沃克斯豪尔城市车
Public 类VauxhallCityCar (沃克斯豪尔城市车)
实现ICar (接口汽车)
Public (公共) SubDrive() (驾驶)实现ICar.Drive (接口汽车.驾驶)
' 驾驶汽车
End Sub
返回 "Vauxhall Ciy Car seats 4" (沃克斯豪尔城市车可容纳 4 人)
End 函数
End 类
' 具体的沃克斯豪尔家庭车
Public 类VauxhallFamilyCar (沃克斯豪尔家庭车)
实现ICar (接口汽车)
Public (公共) SubDrive() (驾驶)实现ICar.Drive (接口汽车.驾驶)
' 驾驶汽车
End Sub
Public (公共) 函数Desc() (描述)As 字符串 实现ICar.Desc (接口汽车.描述)
返回 "Vauxhall Family Car seats 6" (沃克斯豪尔家庭车可容纳 6 人)
End 函数
End 类