C++のデザインパターンでDELEGATEというものがあります。
私がテストしてみたデリゲートはこちらです。
このデリゲートは柔軟性があり型も一貫していて美しいプログラムにもできる点が個人的にとても好きです。
しかし、このデリゲートは便利ではありますが以下の点で疑問を感じます。
単にクラスのインスタンスをハンドラとして引数にとり、必要とする関数へ渡すのではダメなのか
という点です。
このことは参照先のURL内ですでに非現実的であると提言されてはいますが、イマイチ理解できません。
以下を見てください。
ディレクトリ構造がツリー構造であれば上層部であるClsMに下層クラスのインスタンスを持たせておき、
それを必要とする(ClsA内でClsBの関数を実行したり)クラスへ引数で渡してあげれば簡単です。
しかしこれが非現実的である理由がイマイチわからないのです。
仮に相当の理由があったとしても、デリゲートの扱い方(というよりは置き方)に悩みます。
デリゲートはデリゲートとして別ファイルに別クラスとして書いておいて、
画像例で言うところのClsMにデリゲートインスタンスを生成して引数で必要とする下層クラスへ渡すべきなのか?
しかしそれでは画像の方法のがシンプルですしやってることは変わりません。
単に必要なクラスのインスタンスを引数で渡してやるのではどのような問題があるのか?
そしてデリゲートの扱い方をどうすべきなのか?
以上の点について教えてください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/03 03:25