teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

表現の修正

2016/07/22 04:14

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  完全な正解は無いと思いますが、food側にcutを持たせるケースが多いのではないかと思います。
2
2
  何故なら多くの場合、肉の切断という加工は調理の一工程に過ぎないので、後続の処理のために状態を保存することになると思うからです。
3
- 食材のインスタンスがcut処理をされた直後に破棄されたり(代わりに「カットされた鶏肉」のインスタンスをchefのプロパティに持たせる)、(提示されているコードのように)foodだけを見てもcut済みかどうか判別できなくても良ければ問題ないのですが、そうでなければcutされたというステータスを食材側で維持する必要が出てきます。
3
+ 食材のインスタンスがcut処理をされた直後に破棄されたり(代わりに「カットされた鶏肉」のインスタンスをchefのプロパティに持たせる)、foodだけを見てもcut済みかどうか判別できなくても良ければ問題ないのですが、そうでなければcutされたというステータスを食材側で維持する必要が出てきます。
4
4
  多くの場合、インスタンスのプロパティは隠蔽することがメンテナンス性の向上につながると思いますので、別インスタンス(chef)のメソッドから食材(food)のプロパティの変更をしなければいけない設計が窮屈になるかも知れません。
5
5
  ※食材側にステータスを変更するためだけの(cutではない)メソッドを追加してもいいですが...
6
6
 

1

表現の修正

2016/07/22 04:14

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  完全な正解は無いと思いますが、food側にcutを持たせるケースが多いのではないかと思います。
2
- 何故なら多くの場合、肉の切断という加工は調理の一工程に過ぎないので、処理された状態を保存することになると思うからです。
2
+ 何故なら多くの場合、肉の切断という加工は調理の一工程に過ぎないので、後続の処理めに状態を保存することになると思うからです。
3
3
  食材のインスタンスがcut処理をされた直後に破棄されたり(代わりに「カットされた鶏肉」のインスタンスをchefのプロパティに持たせる)、(提示されているコードのように)foodだけを見てもcut済みかどうか判別できなくても良ければ問題ないのですが、そうでなければcutされたというステータスを食材側で維持する必要が出てきます。
4
4
  多くの場合、インスタンスのプロパティは隠蔽することがメンテナンス性の向上につながると思いますので、別インスタンス(chef)のメソッドから食材(food)のプロパティの変更をしなければいけない設計が窮屈になるかも知れません。
5
5
  ※食材側にステータスを変更するためだけの(cutではない)メソッドを追加してもいいですが...
6
6
 
7
- それで、chef側にもcutかそれに近いメソッド(調理の前の加工)を作って、その中でfoodのcut(調理されることによるステータス変化)を実行すればすっきりするのでは無いかと思います。
7
+ それで、chef側にもcutかそれに近いメソッド(調理の前の加工)を作って、その中でfoodのcut(調理されることによるステータス変化)を実行すればすっきりするのでは無いでしょう