すっかり飽きてきてるEffective Javaの時間です。今すごく触りたいのはClosureToolsです。
項目18
インターフェースを作ったらできるだけ変えないで、
インターフェースを継承している抽象クラスを変えるようにしろってことかな?
項目19
- 定数を宣言してあるだけのインターフェースは使う側が混乱するだけ
- クラスに強く結びついている定数を宣言するときはそのクラスに宣言する
- 広く使われる定数を宣言するときはインスタンス化を防いであるクラスで宣言する
- 列挙型で宣言したほうがいいときはenumを使う
こんな感じかな。
項目20
「タグ付きクラス」の意味がわからない…… コメントで説明してあるところを言ってるのかな?
1つのクラスに「円」のコンストラクタと「四角」のコンストラクタを作ってあったり、
各メソッドが「円」か「四角」かで処理を分けてあったりするクラスは非効率だから、
クラスを階層的に作りましょう、ってことが書いてある……と思う。
なんかオブジェクト指向習いたてのころに読んだことがあるような内容だった。
1つにまとめないで図形クラス派生の円クラスと図形クラス派生の四角クラスを作る、みたいな。
うーん、続けられるのかなー。