川上真一
mulcc****@nifty*****
2005年 10月 14日 (金) 23:17:26 JST
こんにちは。川上です。 まず, >Javaのように1クラス1ファイルにできればすっきりしそうですが、 >JavaScriptで同じことをやろうとすると面倒なことにもなりますね。 に関してなのですが,やっぱり,.js ファイルから .js ファイルを インクルードできないのが痛いです。 ですが,インクルードに関しては, ちょっと思いついたことがあるので,それを試してみようと思っています。 これができれば,1クラス1ファイルに分けようと思います。 >今までJavaScriptをオブジェクト指向的に利用したことは無いので難しいですが、 >JavaScriptや各クラスをオブジェクト指向的に扱うかどうか、ってことろで決まって >きそうですね。 Javascript に関して,私が今まで考えてきたことは,以下の2点です。 ・部品利用者にとっては,部品を(オブジェクト指向的に) インスタンス化して利用できた方が便利だし,分かりやすい。 ・ただし,部品の実装に関しては(オブジェクト指向的な) 継承などにこだわる必要はあまりない。 ということで,今の IWidgets は以下のような作りになっています。 ・クラス間のインターフェースを合わせたい場合は, 同じメソッド名,変数名にする。 ・実装を共有したい場合は共通ファンクション(_iwidgets_xxx)を利用する。 で結果として,ファンクションがとっちらかった状態になっている...。 んが,教えてもらったページをみると, 継承をうまく使えば,そのあたりを整理できそうな気がしてきました! とりあえず以下の方針で見直してみます。 ・継承を使えそうなところは継承を使い,共通ファンクションを減らす。 ・private メソッドについてはコンストラクタのなかで定義する。 ・ファイル毎にクラスを分ける。 結構な大改造になりそうですが, 今週末はこれを第一優先でやってみたいと思います。 >とりあえずは、IWidgetsクラスを拡張したり、イベントハンドラをオーバーライドし >やすい >つくりにしたり、クラスを継承するための情報を公開できればいいのかなぁ、と思い >ます。 がんばります。 目標としては, 「ドキュメントを読まなくても,ソースを見ればどうすればいいのかわかる」 としてゆきたいと思います。 >時計ウィンドウもIDebugと同様にIWidgetsをカプセル化的に利用していますが、 >_IDebugクラスはIWindowと直接は関係ないんですよね。 >クラス変数にも持っていない。 >で、print関数で初めて生成している感じですね。(一時的なカプセル化?) 内部的に使用しているだけです。 #「委譲」って言うんでしたっけ? IDebug に関しては,わざとそうしている部分もあるのですが...。