ノードのリストというリストオブジェクトがあります。ユーザーに「その場での並べ替え/順序付け」を提供したい。ユーザーは、リスト内の任意の場所に項目を配置できます。この動作全体をパッケージ (オブジェクトなど) として保持し、並べ替えモードが必要なときに一時的に借りることができる設計パターンはありますか?
私はJavascriptでこれをやっています。
デコレーターを考えましたが、元のオブジェクトのプロパティを変更する必要があります。それを行う正しい方法のように感じませんでした。デコレーターは、元のオブジェクトを変更せずに機能を追加することを想定しています。
新しい詳細:
私がやろうとしていることについて、より良いアナロジーがあります。ゲームのキャラクターを考えてみましょう。キャラクターはゲームが生き残るまで生きます。キャラクターはいくつかの役割を担うことができます。役割は、永続的なキャラクターのプロパティを変更できます。キャラクターは、1 つ以上の役割を 1 回以上引き受けることができます。プログラムの「キャラクター」と「役割」をどのように構成するか。
Role が Character のデコレータのようなものである場合、Character のプライベート プロパティを Role で変更することは良い方法ですか? その他の方法で?