|
|
1
5
如果只在创建订单时知道用户,则可以实现
如果,在过去,你不知道会有一个客户需要,你可能也不知道是否有可能实现
|
|
|
2
3
使用工厂的真正好处是它是一个fa_ade,它隐藏了如何创建一个满足订单角色的对象。更确切地说,工厂知道你真的在做一个食品订单,没有什么可以改变,从总是做一个食品订单,有时做一个食品订单。(如果Java让你拦截
|
|
|
3
2
不,因为工厂的依赖项应该通过工厂构造函数注入,而您只在一个地方构建工厂,但是将其作为依赖项传递给需要创建订单的所有东西。从工厂获取订单的东西仍然调用相同的方法createOrder()或其他方法,因此代码没有改变。 依赖项都应该连接在一个地方, composition root ,这应该是唯一需要更改的地方,以便向工厂添加新的依赖项。 |
|
|
4
1
你告诉工厂新的依赖关系,让它为你添加它。对工厂的方法调用应保持不变。 |
|
|
5
1
The factory pattern 可以减轻添加依赖项的痛苦,因为 工厂可以包含州 而且,事实上,可以封装多个依赖项(例如,不提供三个依赖项,所有这些依赖项都需要调用某个对象的构造函数,而现在只提供一个工厂对象,其中工厂包含需要提供给构造函数的三个对象)。 举个例子,比较一下:
还有:
注意,第二个版本需要的对方法“doit”的依赖更少。这并不意味着在整个程序中不需要这些依赖项(实际上,程序仍然在工厂的实现中使用dependencya和dependencyb)。但是,通过这样构造它,可以将依赖关系隔离为工厂代码,这样可以使其他代码更简单,从而更容易更改
在书中给出的例子中,为什么
|
|
|
MattT · 添加rowfactory后不显示Javafx表视图 7 年前 |
|
|
vpetrovic · 具有Autofac依赖项的工厂 8 年前 |
|
|
Praveen Rai · 创建者在工厂模式中的作用 8 年前 |
|
|
bschreck · 在不知道类型的情况下返回泛型对象? 8 年前 |
|
|
tblznbits · 如何在定义全局方法时从继承的类中动态选择子类 8 年前 |
|
|
nanachimi · 当实现的构造函数具有要注入的依赖项时的工厂模式 8 年前 |
|
|
satyanarayana · 使用工厂模式在同一表中加载不同的自定义单元格 11 年前 |