【发布时间】:2018-10-31 09:27:55
【问题描述】:
我现在正在学习设计模式,并为每种模式阅读不同的资源。我有一个关于模式抽象工厂的问题。我读到了两种实现这一点的方法。我会用这个工厂来写,没有实现。例如,我制作了不同的门。
第一种方式。我们有门工厂的通用类,它包含用于制作不同类型门的不同方法(返回适当的门类):
$doorFactory = new DoorFactory();
$door1 = $doorFactory->createWoodDoor();
$doorFactory = new DoorFactory();
$door2 = $doorFactory->createSteelDoor();
第二种方式。我们有父类 DoorFactory 并扩展了 WoodDoorFactory 和 SteelDoorFactory 的类。该类实现相同的方法 createDoor(并返回适当的 Door 类)
$woodDoorFactory = new WoodDoorFactory();
$door1 = $woodDoorFactory->createDoor();
$steelDoorFactory = new SteelDoorFactory();
$door2 = $steelDoorFactory->createDoor();
你怎么看,哪种方式更优化和规范?
【问题讨论】:
标签: oop design-patterns abstract-factory