Effective Java 2nd Editionの自分の感想まとめ
"Effective Java"を英語で読んでいる。サンプルコードがあるので、英語が分からなくても、言わんとすることの察しがつく。
2012-11-08 23:14:24"Effective Java 2nd Edition"をChapter 2まで読み終えた。昔読んだときには分からなかったことが分かるようになっていて、嬉しい。
2012-11-15 23:04:35cloneをオーバーライドしたくて、"Effective Java"で書いてあったのは思い出せた。さて、どう書くんだったか。
2012-11-19 23:10:27まだちゃんとcloneのところを読んでいなかった。ざっと読んだところ、コピーコンストラクタやコピーファクトリィを使った方が良いらしい。
2012-11-19 23:10:34"Effective Java 2nd Edition"、Item 15: Minimize mutabilityは身に染みる。うっかり参照渡ししていて、渡した先で意図しない変更がされて大変な目に。そういえば、Rubyだと破壊的なメソッドは"!"で一目で分かるようになってたっけ。
2012-11-21 09:42:01"Effective Java 2nd Edition"、Item 15: Minimize mutabilityは身に染みる。うっかり参照渡ししていて、渡した先で意図しない変更がされて大変な目に。そういえば、Rubyだと破壊的なメソッドは"!"で一目で分かるようになってたっけ。
2012-11-24 19:41:05"Effective Java 2nd Edition"、Item 8がなかなか面白い。インスタンス化可能なクラスを継承して、値を持たせると、理想的な形ではequalsをオーバーライドできないと言う話。コンポジションを優先しよう、というItem 16に繋がるみたい。
2012-11-28 22:17:00Javaでオブジェクト指向を学ぶと、継承が特徴として大々的に紹介されているけれど、継承してサブクラスを作るより、委譲の方が使いやすいというのは、ねじれているよなぁ。かといって、いきなりインタフェースは難易度高いか。
2012-11-28 22:29:30"Effective Java 2nd Edition"、Item 17: Design and document for inheritance or else prohibit it. Check Styleがfinal付けろって言ってくる背景コレか。
2012-11-29 10:15:24"Effective Java 2nd Edition", Item 18: Prefer interfaces to abstract classes. そう言えば、継承してもいいけれど、インタフェースもあるよ、という設計のライブラリあったなあ。
2012-11-29 10:32:46"Effective Java 2nd Edition", Item 20: Preffer class hierarchies to tagged classes. タイプコードのことかな?
2012-11-29 21:56:40"The Effective Java 2nd Edition", Item 21: Use function objects to represent strategies、関数ポインタ、デリゲート、ラムダ式のような効果は、ストラテジー・パターンで得られるという話。
2012-12-13 11:56:52"The Effective Java 2nd Edition", Item 21: 具象ストラテジークラスには、よく無名クラスが使われる、とのこと。確かに無名関数に対応するなぁ。
2012-12-13 12:01:34"The Effective Java 2nd Edition", Item 21: でも、それだとステートレスなクラスが毎回newされてしまうから、インナークラスにして、private static finalなフィールドに入れといた方がいい、と。
2012-12-13 12:05:09"The Effective Java 2nd Edition", Item 21: 公開するならpublicにするか、staticなファクトリィメソッド作るか。
2012-12-13 12:08:09"The Effective Java 2nd Edition", Item 22: Favor static member classes over nonstatic、ネストされたクラスには4種類あって、その一つがインナークラスと呼ばれているのか。
2012-12-13 12:11:22"The Effective Java 2nd Edition", Item 22:、static member classのよくある使い方はパブリックヘルパークラス。nonstatic member classはアダプタとして。
2012-12-13 12:18:52"The Effective Java 2nd Edition", Item 22: 無名クラスの使いどころはファンクション・オブジェクト。無名関数と同じ。
2012-12-13 21:00:31"The Effective Java 2nd Edition", Item 23: Don't use raw types in new code、Generics使おうという話。これはできてる。1.4まではなかったのが信じられないくらい。キャスト失敗には泣かされた。
2012-12-13 21:11:54