Bridgeの5つのパターンについて読み進めました。(p.58)p.58「システムで1つ」でいうシステムとは?→PC1台という単位ではないね→EXEとかプロセスとか?→JavaでのSingletonの仕組みとして、VMに1個では?→いやいや、クラスローダ毎になってしまうのではEJBではstaticフィールドを使っても、複数クラスローダが絡んでくるので、EJB全体をシステムとして「1つ」を保証するときは、DBなどを使うのではないかp.62唯一のインスタンスの生成タイミング→C++のイメージだと、staticなsingletonフィールドが初期化されないのは違和感ある。これまで勘違いしていた。別メールで立見さんが結果を報告されてますね。以前では、Singletonクラス自身がアンロードされた場合に、その中のクラス変数が参照していたインスタンスも失われてしまうという問題があったが、これは解消されたという情報を見た気がする。→http://java-house.jp/ml/archive/j-h-b/028054.html→この問題については、Javaの格言に記述がある(場所は不明。(p.65)p.69下のコードnullチェック必要ですよね→サンプルコードだからか。使わないけど→shallowコピーじゃ困る場合(フィールドにvectorを持っていて、その先も複製したい場合)には書くp.72getBytes()で下線の長さを求めているが、半角カナ等の、画面上の文字幅とバイト数が一致しない文字列が来た場合にずれるのでは?→表示幅とbyte数が同じことを前提にしたサンプルになっているようだ→AWT等ではフォント幅を計算してそろえるが、コンソールプログラムではどうするのか。表示幅を求めるAPIはあるのか?-------■昼休み二手に分かれて昼食を取った。ステップ数測定ツール、メトリクス測定ツール-------再開Prototypeパターンを使いたくなるようなシーンが思いつきにくい→グラフィカルなエディタ→作成したものを元に、コピーしたりするとき→Beanエディタとかで使ってるんではないか?→色々な状態を持つインスタンスを生成する際に、毎回初期値をたくさん与えるのがたいへんな場合に使えるのでは前章のSingletonのところで、Prototypeが関連しているパターンとしてあげられているが、これは何?→ManagerをSingletonにするとか、Managerが持つマスターのインスタンスをSingletonにするとかではないか。するというものではない。全部のフィールドをコピーするcloneを書いたことがあるが、superを呼んで差分のところだけを書き換えれば良かったと思っている。性という点でこのサンプルは弱いのでは→第3刷(2001年11月1日発行)では、ベースのBuilderでgetResult()せず、close()というメソッドになっている。結果の取り出しは個々のサブクラスが持つメソッドで行うようにしたようだ。サンプルのBuilderでは、titleや本文を作成するメソッドが順番に実施されることが前提になっている。make*()よりset*()という形にして、自由な順番で与えて、最後に取り出すときに作成するようにしたほうが、使いやすいのではないか→HTMLBuilderでは、makeTitle()の中でWriterの生成をしたりしている。これだと呼ばれる順番に強く依存してしまうBuilderと前のPrototypeと、クラス図はあまり違うように見えないが、どう違うのか→Builderは生成の手続きについて隠蔽するという目的がある→実際には、もっと複数のクラスからnewしたものを関連付けて組み上げたものを返すようなイメージなのではないか。サンプルは簡単すぎて、Prototypeとクラス図が似てしまったのでは。問題7-2あまりデザインパターンと関係ない設問では。回答もちょっと納得いかない。例外を投げたほうがいいと思う問題7-4もデザインパターンとは無関係。Methodを使っているところがあると思うが?→二つのパターンのスコープが違う。注目するところが違う。同じではないフレームワークの切り替え時に、片方にしかない機能を提供するようにした場合、難しさがある。(よくわかりませんでした。close()などはpublicよりprotectedのほうがよいのではないか。