[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10090] Re: Java 言語で学 ぶデザインパターン入門第 6 回議事録
高橋(智)です。
Wataru Fukushima wrote:
snip
> > P370
> > CommandListNodeクラスのtoString()メソッドの中で「"" + list」という記述を行っ
> > ている
> > --> あまりお薦めできない。
> > --> 結城さんパターンである
>
> Object.toString()を使うよりも、String.valueOf()を使うのが好みです。
> toString()って、何だがデバッグコードっぽいし、Javaコアクラスの中には、
> バージョンによって出力形式が変わるものが(確か)ありましたし。
snip
> 関係ないですが、StringBufferのインスタンスからStringのインスタンスを得る
> 時は、私は、
>
> new String(instanceOfStringBuffer)
>
> のように書きます。
私は MySQL用のJDBCドライバを実装しているのですが、そこで
java.sql.PreparedStatement を実装する際に、上の2点について
ともに背いています。(^^;
?パラメータを実際のSQLデータに置き換える際に、以下の用ように
しています。
---------------------------------------------------
StringBuffer sql = new StringBuffer(1024);
Object[] param_obj_array = new Object[3];
...
param_obj_array[0] = ...; // パラメータオブジェクトを保存
param_obj_array[1] = ...; // パラメータオブジェクトを保存
param_obj_array[2] = ...; // パラメータオブジェクトを保存
...
Object obj = param_obj_array[0]; // ?パラメータを展開
sql = sql.append(obj.toString());
...
...
return sql.toString(); // 完成したSQL文を返す!!
---------------------------------------------------
Object[]に格納したり、Object.toString()を呼んでいるのは PreparedStatemenに
public void setObject(int parameterIndex, Object x,
int targetSqlType, int scale) throws java.sql.SQLException;
というメソッドがあることを考慮してのことですが...
new String(StringBuffer buff); については、以前JavaWorld誌で同じことが
書かれていたのを読んだときに、修正しようと思ったままほったらかしにしている
のが原因です。(^^;
> > ◆さいごに
> > 次回に読書会の課題図書は既に投票が始まっています。
> > 5月の中旬をメドに締め切りたいと思います。
>
> 今見たら僅差ですが1位はリファクタリングになってますね。
> 社内の勉強会では、最初と最後の章を抜かして、約2週間に1回2時間、輪講形式
> (各自3トピックくらいを担当しレジメにまとめて発表)でやって9ヶ月(16回)で
> 終わりました。
この本ですが、最近なかなか売っていないです。(^^;
紀伊国屋の店頭在庫の部数も"僅少"のようです。
(※ https://bookweb.kinokuniya.co.jp/hb/ )
まだ持っていないかた、念のため早めに買っておいたほうが良いかもしれません。
(※まだ決まった訳ではないです)
--
高橋智宏
Java読書会( http://www.t3-jpn.com/bof/ )
T3-Japan( http://www.t3-jpn.com/ )