ユーザーと一連のカスタマイズ可能なアイテムとのやり取りをモデル化する方法を考えると、これはかなり一般的なケースのようです。これをバックボーンで表現する従来のアーキテクチャはあるのだろうか。
この図は、私たちが設計しているいくつかのビューとモデルの間の関係を示しています。ItemNavigator ビューを使用すると、ユーザーはコレクション内のすべての UserItem を表示できます。各 UserItem は、1 つの (共有) アイテムのユーザーがカスタマイズしたプロパティを格納します。ユーザーは ItemEditor ビューでアイテムを表示し、そのプロパティをカスタマイズします。問題は、Item.save() メソッドがカスタム プロパティを UserItem モデルに渡して保存することに意味があるかということです。
アイテムの例は、サイズと色を選択できるシャツ スタイルです。UserItem は、シャツ スタイル ("/items/shirts/polo" のアイテム) を参照し、{color: "red", size: "L"} を格納します。
Item リソースがキャッシュ可能で、すべてのユーザーに共通であるため、このアプローチは興味深いと思われます。