Hori,Masaki
masak****@users*****
2002年 11月 1日 (金) 20:36:13 JST
ども、堀です。 footashidaさんのおっしゃる通りです。 そちらの方がスマートだと思います。 ちょっと難しく考え過ぎたようです。 では、プロトタイプを待ってます。 もちろん、仕様を出して下さればこちらも協力させていただきます。 ではでは。 On 2002.11.1, at 01:35 AM, footashida wrote: > こんにちは。footashidaです。 > > 実装案、とってもスマートでいい感じだと思います。 > ありがとうございました。 > > 各プラグインは、singletonの > MainControllerのインスタンスを取得して、 > protocolで定義されているメソッドを通して本体の機能にアクセスする、 > といったやり方ですね。プロトタイプは、堀さん案をベースに作ってみましょうか。 > > 1点だけ気になったのですが、これだとMainControllerの実装クラスが > POPControllerやSMTPControllerのメソッドも実装しなければならないことに > なりませんか?(勘違いだったらすみません) > メソッドの数が多くなりすぎてしまうような気がします。 > > というわけで、以下のようなインターフェースを考えてみたんですけど、 > いかがでしょうか?ご意見頂ければうれしいです。 > > ようするに、MainControllerはPOPControllerなどの各種Controllerの > インスタンスを返すメソッドを持ち、プラグインは直接POPControllerの > インスタンスのメソッドにアクセスするというわけです。 > > @protocol MainController > -(id)popController; // POPControllerのインスタンスを返す。 > -(id)smtpController;// SMTPControllerのインスタンスを返す。 > -(id)anyController;// その他なんかのControllerのインスタンスを返す。 > @end > > ------SomePlugin.m------- > // プラグインの某メソッド。中でPOPControllerのbarメソッドを呼び出す。 > -(void)foo{ > [[[NSApplication sharedMainController] popController] bar]; > } > > ではまた。