2017-10-17 49 views

回答

2

抽象工厂有一个单一的职责,为创建多态对象提供契约,但不将接口绑定到特定的实现。换句话说,合同是它的责任,不是制造物品。

SRP适用于每个类,抽象工厂在模式中只有一个类,每个具体工厂有不同但相似的责任。不要把责任想象成一个单一的功能,它可能是一个复合体。

0

在计算责任时,“诀窍”是弄清什么构成责任。当你考虑“对象创建次数”时,一个复杂的工厂可以执行不少的任务。但即使结果是一个相当复杂的对象图,工厂的责任就是创建该图。

例如,一个可怕的步骤序列可能会被分解为多个部分和子组件,以使测试更容易,但最终有人必须使用任何参数和依赖项来调用初始化程序/构造函数来设置它。这是工厂本身的责任。

相关问题