【发布时间】:2013-12-30 21:45:49
【问题描述】:
我知道有很多关于不同工厂模式差异的问题,但答案是如此不同和令人困惑。我读的书使用不清楚和(过度)简化的例子。即使在阅读了 Wikipedia 的解释以及很多关于它们的在线解释(包括这些网站上的所有内容)之后,我也有很多问题。我目前正在阅读的书是 Head First Design Patterns。
在简单工厂中,客户端使用带有工厂方法(可以是静态的)的单独类(Creator)来返回产品。
在工厂方法模式中,创建者和客户端是同一个东西,他们在同一个类中使用抽象方法来创建新产品,他们在同一个类中操作。当然,创造者(或客户)是抽象的,所以关于制作具体产品的决定被推迟到子类。
我的理解是否正确(例如,FMP 中的 Client 和 Creator 是否相同,我从未在 FMP 图中看到 Client)?
在工厂方法模式中,它缝合了create方法在Creator之外是不可重用的,所以它只能在制作一些新的Creator时重用?
在哪些情况下我可以二选一?
(P.S.请不要将此标记为重复,我想在本站明确说明)
【问题讨论】:
标签: java oop design-patterns factory factory-pattern