作者w0005151 (蓝厅)
看板OOAD
标题[模式] factory pattern疑问
时间Wed Jan 4 22:48:04 2017
第一次看到这个pattern是在head first design pattern
就我的理解这个pattern的精神是把具象化物件程式码封装起来
让客户端藉由factory提供的method创建Product
而不是直接new出一个 Concrete Product
但这样做的好处到底是甚麽呢?
客户端不是依然还是需要一个Concrete Factory吗?
这样不是把new Concrete Product动作变成new Concrete Factory而已吗?
而abstract factory我就比较能理解
他是把一系列有合作关系的Concrete Product集合在一个abstract factory里
客户端只要使用这个factory的method就不会搭配错这些Product
这样理解对吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.228.98.198
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/OOAD/M.1483541286.A.648.html
1F:推 H45 : 工厂模式允许子类别决定 new 物件的类别,高阶调用` 01/05 19:33
2F:推 H45 : 式是透过介面或抽象类别而非该物件的实体类别 01/05 19:33
3F:推 H45 : 工厂模式建议看其他资料补完HF书中没说清楚的部分 01/05 19:46
4F:推 H45 : Wikipedia 英文页面的图还满简单明了的 01/05 19:48
5F:→ w0005151 : wiki那个例子看起来比较像template method pattern 01/05 22:32
6F:→ w0005151 : PHP的那个例子就是我的疑问,那个例子工厂模式看起 01/05 22:35
7F:→ w0005151 : 来并未提供任何好处,客户端还是要new一个具体工厂 01/05 22:35
8F:推 H45 : 子类别多的时候才看的出好处 01/05 23:39
9F:→ tinlans : 你的思维还停留在整个专案从头到尾都是自己、 01/29 04:27
10F:→ tinlans : 自己团队或自己公司开发的。试着想想两间公司合作 01/29 04:28
11F:→ tinlans : 或者 A 公司跟 B 公司买授权来扩充之类的情境。 01/29 04:28