Java 8でコマンドパターンを使用して、さまざまなクラスのオブジェクトにさまざまなコマンドを渡したいとします。キャッチは、オブジェクトにはパブリックセッターを公開したくないメンバーがあることです。私はそれらのメンバーがコマンドを介して操作されることを望みます。私の問題は、これらのメンバ(または、より良いパッケージプライベートセッタ)をコマンドに公開する方法です。私がそれらをインタフェースの一部にすると、それらを公開する。私が複数の継承を必要とするので、それらを継承することは選択肢ではありません。だから、コマンドはクラスの一部として、あるいはインターフェースの一部として公開されていない場合、どのようにsetterが利用可能であるかを知ることができますか?オブジェクトの種類を切り替えるJavaの代替方法
私が考えている最良の解決策は、コマンドのタイプを切り替えてコマンドの実行を実装することです。がクラス内にあります(メンバーはプライベートになることもできます)。必要な情報をコマンドクラスから引き出すだけです。しかし、OO言語でオブジェクトタイプを切り替えるという考えは、私に汚染を感じさせます。より良い方法がありますか?
問題を説明するのではなく、[mcve]を入力すると手助けするのが簡単になります。 –
最小限の、完全で検証可能な例は、設計に取り組むことができない場合は非常に良いものです。デザインをしていなくても実用的ではありません。下のdasblinkenlightのおかげで、私が必要としていたパターンを見つけることができました。 – digitig