私のプログラムには、基本Objectクラスとベクトルがあります。私は各Object *で実行したい操作を持っていますが、操作はObject *の最も派生したクラスに依存しています。したがって、訪問者のパターンを使用します。しかし、私は訪問者のパターンが大量のカップリングにつながることを発見しました。私は新しいObject派生クラスを追加するたびに、基本VisitorとVisitorから派生するすべてのクラスを変更する必要があります。リスト内のオブジェクトは、ベースタイプではなくランタイムタイプに基づいてどのように操作しますか?
このような高い結合性につながりません実行時の種類に基づいてオブジェクトのリストに対して操作を実行する簡単な方法はありますか?
仮想関数はどうですか? –
あなたは、オブジェクトで何をしたいのかについての詳細や例を教えてください。 – Anton
派生クラスの操作のセットを実行時に変更できるように指定していませんでした。訪問者は、一連の操作を1つのクラスにカプセル化します。このクラスは実行時にサブクラス化および切り替えが可能です。 –