読書会(Javaの格言)第4回議事録

[ 戻る ]


「Javaの格言」を読む会第4回議事録

オレンジソフト会議室 10:30-

橋本(安)さん、高橋(徹)さん、塩田さん、高岡さん、
斉藤(栄)さん、布留川さん、野村さん、田中さん、石黒さん、
午後から:西岡さん、橋本(孝)さん
書記:えんどう

第10章 コレクション

[標準コレクションクラス]

p.246
"heterogeneous"の読み方は?「ヘテロジーニアス」

サンプルコードに

 System.out.println("" + description + " " + url);

とあるが、最初の「"" +」には意味があるのか?(斎藤)

あとあと何か文字を書くつもりだった?(えんどう)

p.248 
"homogenous" eが足りない→ homogeneous

Spanner とは? → 工具のスパナ
なぜスパナを Vector に追加するのか?
「型に合っていないクラスを強引に追加したら
役に立たないということを言いたい?(斎藤)」

"put a spanner in (into) the works" --> 仕事を妨害する

「Vectorを使うときに、最初の要素は何で、次がなんで、
という設計をするとメモリーマップを設計するのと同じになってしまい、
オブジェクト指向的では無くなる(高橋)」

「本当はJavaでもC++のテンプレートのように
型を保証したgenericキーワードを使えるような言語仕様にすべき(高橋)」

[均質コレクション]

p.253 

「ありがちな設計としては class CollectionImpl が abstract で、
abstract メソッドとして addElement() とか elementAt() とかを
書いておくことが多いが、この場合はただのクラスである。よく考えられている
のかもしれない(えんどう)」
「それはaddElement(), elementAt()に型を書けないから(斉藤)」
「やはりC++のテンプレートのようなものが欲しくなる(高橋)」

「interface や abstract クラスから派生していないのに xxxxImpl という
命名なのはなぜか?(斉藤)」
「命名としては良くないのでは(高橋)」

JDEの話題→委譲のメソッドを書いてくれる、accessorを書いてくれる、
         import文を自動で書いてくれる。

import文は * で書くべきか?

「Writing Robust Java Code」→べきではない
「Javaの鉄則」→べき

[実行時型付けコレクション]

p.262

「読み取り専用」のinterfaceをURLManagerに返させるとは?(斉藤)
addElement()が無いinterfaceを書いてそれを返させれば可能だが、
イテレータを使った方がずっと楽(えんどう)

筆者の主張は、パラメータ化されたクラスは不要であるとする。
根拠は型に安全な均質コレクションクラスを利用することで
型の安全性が保証される。
また、型をパラメータ化したシステムの多くに見られる
コードの膨張とコンパイル時間という問題も回避できるとしている。

第11章 イテレータ

[序論]

[イテレータの威力]

p.266

型に安全なコレクションを作ったから、
型に安全なイテレータも作っている?(えんどう)

格納するクラスごとにイテレータを作ると
イテレータが増える(橋本(孝))
→そうするとやはりテンプレートのようなものが欲しくなる。

ここでも邪魔者 Spanner クラスが登場。

[イテレータの種類]

余談:
 配列の初期化の記法

 int[] array = new int[3];
 int array[] = new int[3];

 意味としては上だが、下のようにも書ける。

p.280 Visitor パターンとは?

p.284 「ファンクタ」と「コールバックを使った内部イテレータ」の
      本質的な違いは何か?
p.281 のファンクタではexecute()の戻り値によって array_[i] が
      書き変わっているが、
p.284 の内部イテレータでは読み取り専用にしてある。
      ArrayAdapterを書き換えなくても読み取り専用メソッドが追加できる。
      (田中)
      コールバックの特殊な形がファンクタ?(橋本(孝))

[マルチスレッドとイテレータ]

スナップショットイテレータを使うか、
それともObserverを使うか?

付録A 図ならびにコーディング規約について

p.294
カージナルとは? 基数(集合の要素の数)

命名規約→Doug Leaのものを採用。

付録B 規則・設計原則・ヒント一覧

9章までしか無いが・・(10、11章が無い)

Lasyを怠惰と訳すのはどうも...

付録C 用語集

カージナリティイー →多重度関係

型に安全な定数 →基本型ではなくクラスのインスタンスである定数


[ 戻る ]