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