次のシナリオはどのように実装するのが最適でしょうか:
バージョン 1.0 には、注文フォームなどのアプリケーション用の標準化されたユーザー インターフェイスがあります。このアプリケーションは、さまざまな顧客のニーズに合わせてカスタマイズされます。これは、顧客 A の追加フィールド「希望配達時間」、顧客 B のフィールド「電話番号」の省略、顧客 C の近くの倉庫を示す追加の地図プラグイン、および顧客 D のこれらの組み合わせである可能性があります。
現在、開発者は標準化された注文フォームの新しいバージョンであるバージョン 2.0 をリリースしています。顧客のために行われたすべてのカスタマイズを維持できるようにするための労力を最小限に抑えるように設計する最善の方法は何ですか?
次の解決策を想像できました。
- 構成: すべてのオプションが構成可能です。すべての可能な顧客のニーズを予測することはできないため、これは実際には解決策にはなりません。
- 継承: カスタマイズは、標準化されたバージョンを継承することによって行われます。しかし、新しいリリースが「安っぽい」カスタマイズされたバージョンにならないようにするにはどうすればよいでしょうか?