[SML 7529] Re: Cincom Smalltalk Daily: 11/1/06に関して

Akinori Sugitani asugitan @ kh.rim.or.jp
2009年 5月 2日 (土) 14:58:29 JST


濱崎さん、コメントありがとうございます。
濱崎治さんは書きました:
>杉谷さんのメールを読むまで、こんなのがあるのを知りませんでした。
毎日みているわけではありませんが、Cincom Smalltalk Dailyは自分にはとても参考になります。

>以下の理由により、どちらでも動作するようです。
> 1.QueryExecutor class>>executeQueryが
>
>
>   ^self new executeQuery: aQuery
>
>
>  と書かれており、QueryExecutorのインスタンスもクラスも、どちらも同じメッセージに
>  同じように応答できる。
>
>
>2.QueryExecutorの4つのインスタンス変数のうち、query,result,connectionは、#executeQuery:の
>  中(およびそこから呼び出されるメソッドの中)で、参照される前に何らかの値がセットされる。
>  また、インスタンス変数connectionClassは#initializeで初期化された後、書き換えられる事がない。
>  したがって、QueryExecutor>>executeQuery:(インスタンスの方のメソッド)が再使用可能に
>  なっている。(ビデオには映っていませんが、QueryExecutor class>>newが自動生成されていて、
>
>
>    ^super new initialize
>
>
>  と書かれていると思います。)
実際にそうなっています。

>「本来どう書くべきか」はよく分かりません。
>でも、今後の展開(コネクションを維持したまま複数のクエリを実行するように拡張する、など)を
>考えると、
>
>
>  self queryExecutor: QueryExecutor new
>
>
>としておく方が良いように私は思います。
詳細な解説ありがとうございます。残念ながら濱崎さんの書かれたことが完全には理解できていないのですが、
なんとなく解った気がします。「Smalltalk勉強会@京都」等を通じてもっとSmalltalkのコードが読めるように、
なっていきたいと思っています。 



SML メーリングリストの案内