打字猴:1.70045817e+09
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 ]  [ 下一页 ]