1700458170
注意类图上的圈圈、框框相对应,两个抽象的产品类可以有关系,例如共同继承或实现一个抽象类或接口,其源代码如代码清单9-11所示。
1700458171
1700458172
代码清单9-11 抽象产品类
1700458173
1700458174
public abstract class AbstractProductA{
1700458175
1700458176
//每个产品共有的方法
1700458177
1700458178
public void shareMethod(){
1700458179
1700458180
}
1700458181
1700458182
//每个产品相同方法,不同实现
1700458183
1700458184
public abstract void doSomething();
1700458185
1700458186
}
1700458187
1700458188
两个具体的产品实现类如代码清单9-12、代码清单9-13所示。
1700458189
1700458190
代码清单9-12 产品A1的实现类
1700458191
1700458192
public class ProductA1 extends AbstractProductA{
1700458193
1700458194
public void doSomething(){
1700458195
1700458196
System.out.println(“产品A1的实现方法”);
1700458197
1700458198
}
1700458199
1700458200
}
1700458201
1700458202
代码清单9-13 产品A2的实现类
1700458203
1700458204
public class ProductA2 extends AbstractProductA{
1700458205
1700458206
public void doSomething(){
1700458207
1700458208
System.out.println(“产品A2的实现方法”);
1700458209
1700458210
}
1700458211
1700458212
}
1700458213
1700458214
产品B与此类似,不再赘述。抽象工厂类AbstractCreator的职责是定义每个工厂要实现的功能,在通用代码中,抽象工厂类定义了两个产品族的产品创建,如代码清单9-14所示。
1700458215
1700458216
代码清单9-14 抽象工厂类
1700458217
1700458218
public abstract class AbstractCreator{
1700458219
[
上一页 ]
[ :1.70045817e+09 ]
[
下一页 ]