オブザーバーのデザインパターンに関して読んだ参考書(GOFデザインパターン、ヘッドファーストデザインパターン、http://www.dofactory.com/Patterns/PatternObserver.aspx)は、具体的な被験者が具体的なオブザーバーへの参照を保持すると規定しています。多くのこのような:オブザーバーデザインパターン - 具体的な被験者とオブザーバー
class ConcreteObserver : IObserver
{
ConcreteSubject concreteSubjectInstance;
//other code, etc.
}
さて、具体的な主題自体は件名インターフェイスを実装している(または、いくつかの抽象Subjectクラスから派生)なぜその抽象/インターフェイスであることConcreteObserverでタイプをしない場合は?私。
class ConcreteObserver : IObserver
{
ISubject concreteSubjectInstance;
//other code, etc.
}
さらに、それを(例えば)IObserver
インターフェイスのフィールドにするだけではどうですか?
最終的に、パターン自体がオブザーバーとオブザーバーのカップリングを緩めるように見える場合、オブザーバーをそのサブジェクトに結合するときに昇格しないように見えるのはなぜですか?
またはそれはありますか?私はこれを読んだ例だけに基づいています。
あなたの '参照 'を提供してください。 – Nix
@Nix:完了。彼らはかなりよく知られているので、リンクせずに名前で本を参照することが十分に感じた。 –
DOFactoryを投稿した例の1つでは、抽象クラスの使用を示していますか? – Nix