[Conga-mail 45] Re: PR05 リリースしました!

Back to archive index

川上真一 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 に関しては,わざとそうしている部分もあるのですが...。




Conga-mail メーリングリストの案内
Back to archive index