2014-09-01から1ヶ月間の記事一覧
項目 24: 無検査警告を取り除く 型パラメータを書いていないなどの理由で、コンパイル時に無検査警告が出ることがある。 無検査警告は全て取り除くべきである。 なぜなら、全ての警告を取り除けば、そのコードは型安全であると保証できるからである。 もし、…
ここから 5 章の「ジェネリックス」に入る。 ジェネリックスを適切に使えば、型安全なコードを書くことができる。 項目 23: 新たなコードで原型を使用しない Java 1.5 より前に、コレクション宣言で用いられていた原型 (raw type) は、型安全の観点から、も…
項目 22: 非 static のメンバークラスより static のメンバークラスを選ぶ 4 種のネストしたクラスの説明が述べられている。 ネストしたクラス (nested class) とは、あるクラスの中で定義されているクラスのことである。 ネストしたクラスは以下の 4 種類か…
項目 20: タグ付クラスよりクラス階層を選ぶ 後の章で出てくる enum をタグとして持たせたタグ付クラスはよくないという話。 わざわざこの悪い方法をとる人はあまりいなさそうな気もする。 以下のようなクラスを考える。 class Figure { enum Shape { RECTAN…
追記:Yosemite 以降では以下の記事を参照してください。 launchd で Homebrew を自動アップデート(Yosemite 編) - kymmt's note Homebrew を使っていて、たまに brew doctor すると、以下のメッセージが表示される。 Warning: Your Homebrew is outdated.…
項目 18: 抽象クラスよりインタフェースを選ぶ インタフェースの利点 主に以下の利点がある。 簡単に実装できる ミックスインを実現しやすい 階層になっていないフレームワークを組織できる ラッパークラスイディオムを利用できる 骨格実装を提供できる 骨格…
項目 16: 継承よりコンポジションを選ぶ 継承を避けておきたい理由 あるサブクラスはスーパークラスの実装に依存してしまうため。 スーパークラスの実装が変わったら、サブクラスの実装も追随して書き換えなければならない。 解決法:コンポジション コンポ…