3

Entity クラスと、追加のものを保持する派生 Item クラスがあります。私は、そのようなオブジェクトにパッチを適用できるものを作成することに取り組んでいます (つまり、それらに diff を適用します)。私が現在持っているのは、エンティティ オブジェクトを連想配列に変換し、これを汎用パッチ ユーティリティに供給する EntityPatcher クラスです (コンポジションを使用)。これは Entity オブジェクトではうまく機能しますが、Item オブジェクトではいくつかの追加フィールドを考慮する必要があります。私が始めたのは、追加のものを保持する派生 ItemPatcher クラスを作成することです。ただし、このクラスはアイテムでのみ機能するため、パッチ メソッドが受け入れるものを絞り込むことができます。liskov置換に違反しているため、これは悪いと思います。ただし、何がより良いアプローチになるかはわかりません。そのため、代替ソリューションへの提案や指針を探しています。

EntityPatcher: http://pastebin.com/CYa3ehH4

ItemPatcher: http://pastebin.com/3BReBZGH

4

1 に答える 1