我在Head First Design Patterns一书中看到了这个例子。 Pizza类有以下方法:
我相信这些方法不应该进入Pizza课程,他们应该进入一个单独的课程。即使我们忽略了单一责任原则被违反的事实,我仍然认为这些应该进入一个单独的类(比如PizzaStore)。
请评论。
答案 0 :(得分:2)
我实际上认为它们在Pizza
类中是可以的,因为它们可以表示状态变化,因此它们是类逻辑的一部分:
bake()
可用于更改Pizza
对象的状态。它最初可能是raw
,在方法调用之后它可能是baked
。 (哈哈,烤!)。
cut()
可用于修改成员numberOfSlices
。最初可以是1
,然后是2
,4
,依此类推。
这些方法当然是从外部调用的,但它们会修改对象的状态。对我而言,他们是班上的一员是有道理的。
答案 1 :(得分:1)
这里可以实现工厂模式。 让我们在课堂上说一些方法说 bakePizza 说 PizzaFactory ,它会返回类Pizza的实例。