1700457610
1700457611
1700457612
1700457613
图8-4 多个工厂类的类图
1700457614
1700457615
每个人种(具体的产品类)都对应了一个创建者,每个创建者都独立负责创建对应的产品对象,非常符合单一职责原则,按照这种模式我们来看看代码变化。
1700457616
1700457617
多工厂模式的抽象工厂类如代码清单8-15所示。
1700457618
1700457619
代码清单8-15 多工厂模式的抽象工厂类
1700457620
1700457621
public abstract class AbstractHumanFactory{
1700457622
1700457623
public abstract Human createHuman();
1700457624
1700457625
}
1700457626
1700457627
注意 抽象方法中已经不再需要传递相关参数了,因为每一个具体的工厂都已经非常明确自己的职责:创建自己负责的产品类对象。
1700457628
1700457629
黑色人种的创建工厂如代码清单8-16所示。
1700457630
1700457631
代码清单8-16 黑色人种的创建工厂实现
1700457632
1700457633
public class BlackHumanFactory extends AbstractHumanFactory{
1700457634
1700457635
public Human createHuman(){
1700457636
1700457637
return new BlackHuman();
1700457638
1700457639
}
1700457640
1700457641
}
1700457642
1700457643
黄色人种的创建工厂如代码清单8-17所示。
1700457644
1700457645
代码清单8-17 黄色人种的创建类
1700457646
1700457647
public class YellowHumanFactory extends AbstractHumanFactory{
1700457648
1700457649
public Human createHuman(){
1700457650
1700457651
return new YellowHuman();
1700457652
1700457653
}
1700457654
1700457655
}
1700457656
1700457657
白色人种的创建工厂如代码清单8-18所示。
1700457658
1700457659
代码清单8-18 白色人种的创建类
[
上一页 ]
[ :1.70045761e+09 ]
[
下一页 ]