読書会(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 用語集
カージナリティイー →多重度関係
型に安全な定数 →基本型ではなくクラスのインスタンスである定数
[ 戻る ]