次の問題について、他の人から考えてもらいたいと思います。Products と Items という 2 つのクラスがあるとします。Products オブジェクトを使用すると、任意の Item オブジェクトにアクセスできます。これが例です。
$products = new Products();
// get existing item from products
$item = $products->get(123);
// create item
$item = $products->create();
$item->setName("Some new product");
$item->setPrice(2.50);
アイテムの状態を更新/保存する最良の方法は何でしょうか? 2 つのオプションが表示されます。
$item->save();
また
$products->save($item);
最初のアプローチは非常に簡単に思えます。Item オブジェクトの属性が設定されると、save メソッドを呼び出して変更が保持されます。
一方、後者のアプローチの方が優れているように感じます。2 つのオブジェクトの役割を分離しています。Item オブジェクトには状態のみが含まれ、 Products オブジェクトはその状態で動作します。このソリューションは、単体テストの作成にも適している場合があります。何かご意見は?