2012-01-25 6 views
1

私はHead First Design Patternsの本でこの例を見つけました。ピザクラスには、次のメソッドがあります。ピザのクラスデザイン

  • が、私はこれらのメソッドはピザのクラスに行ってはならないと、彼らはに行くべきと考えてい
  • ボックス

をカット焼く準備します別クラス。独身責任原則が違反しているという事実を無視しても、私はまだこれらが別のクラス(ピザストア)に入るべきだと考えています。

ご意見ください。

+0

別のクラスに入れたい理由を説明できますか? – wrongusername

答えて

2

は、私が実際に彼らはPizzaクラスである場合、彼らは状態の変化を表すことができて、それは、大丈夫だと思うので、クラスロジックの一部である:の状態を変更するために使用することができ

  • bake()Pizzaオブジェクトです。最初はrawであり、メソッド呼び出し後はbakedとなります。 (ハハ、焼き!)。

  • cut()numberOfSlicesを変更することができます。当初、それは1であり、続いて2,4と続きます。

これらのメソッドはもちろん外部から呼び出されますが、オブジェクトの状態が変更されます。私にとっては、彼らがクラスの一員であることは意味があります。

1

ここで工場パターンを実装しても問題ありません。 いくつかのメソッドを置くことができます。bakePizzaは、クラスではと言っています。PizzaFactoryは、Pizzaクラスのインスタンスを返します。

+0

私はピザは、焼く前でさえまだピザだと信じています。 –

+0

@LuchianGrigoreそれは哲学的な質問の多くです。 – adelphus

+1

なぜ工場を望むのかわかりません。あなたは単にインスタンスを作成することはできません...なぜ彼らが求められていないデザインパターンを使用するのですか?あなたは議論がありますか? –

関連する問題