我在Head First Design Patterns書中遇到了這個例子。比薩類有以下方法:披薩類設計
- 準備
- 烤
- 削減
- 箱
我相信這些方法不應該進入比薩類,他們應該進入一個單獨的課程。即使我們忽視單一責任原則被違反的事實,我仍然認爲這些應該分成一個單獨的類(比如PizzaStore)。
請評論。
我在Head First Design Patterns書中遇到了這個例子。比薩類有以下方法:披薩類設計
我相信這些方法不應該進入比薩類,他們應該進入一個單獨的課程。即使我們忽視單一責任原則被違反的事實,我仍然認爲這些應該分成一個單獨的類(比如PizzaStore)。
請評論。
其實,我認爲這是確定的,如果他們在Pizza
類,因爲它們可以代表狀態變化,並因此類邏輯的一部分:
bake()
可以用來改變的狀態Pizza
對象。它最初可能是raw
,方法調用後可能是baked
。 (哈哈,烤!)。
cut()
可用於修改成員numberOfSlices
。最初它可能是1
,其次是2
,4
等等。
這些方法當然是從外部調用的,但它們會修改對象的狀態。對我來說,他們是班級的一部分是有道理的。
這將是確定在這裏實現工廠模式。 讓我們把一些方法,一類說bakePizza說PizzaFactory返回比薩類的一個實例。
我相信比薩餅在烤之前還是比薩。 –
@LuchianGrigore這更像是一個哲學問題。 – adelphus
我不明白你爲什麼要工廠。難道你不能創建實例...爲什麼使用設計模式,除非他們被要求?你有什麼爭論? –
你能解釋一下你爲什麼會在不同的班級想要嗎? – wrongusername