モナーの *やさしい* Delphi質問スレ Ver3
■ このスレッドは過去ログ倉庫に格納されています
0695667
NGNGtype
TMyControl = class(TWinControl, IObservable)
FObservable: IObservable;
procedure AddObserver(const A: IObserver);
procedure RemoveObserver(const A: IObserver);
end;
procedure TMyControl.AddObserver(const A: IObserver);
begin
FObservable.AddObserver(A)
end;
procedure TMyControl.RemoveObserver(const A: IObserver);
begin
FObservable.RemoveObserver(A)
end;
インターフェースを使わなければ、TMyControl.AsObservableのようなプロパティを公開して、
「使う側の箇所で XXX . AsObservable と書いて使ってもらう」ことになると思いますが、
インターフェースを使いだすと、何でもかんでも機能はasで問い合わせればいいようになるので、
覚えることが減りますし、多態もやりやすくなります。
で、その時implementsが無ければ、このような横流しだけのメソッドを大量に書く羽目になり、数が増えてくると面倒である、というわけ。
はじめから多重継承できればこんなまどろっこしい事しなくていいんですが、
先に述べた様に全てをTObjectから継承するモデルと多重継承は噛み合いませんし、委任先を後で交換できるメリットも。
…以上わたくしの理解なんですが、絶対の自信があるわけでもなく、いい機会なので突っ込みを入れてもらう事にしましょう(^_^
■ このスレッドは過去ログ倉庫に格納されています