タグ

オブジェクトに関するrizmhateのブックマーク (2)

  • EXP03-J. ボクシングされたプリミティブ型の値の比較に等値演算子を使わない

    ボクシングされたプリミティブ型の値を == 演算子や != 演算子で直接比較することはできない。なぜならば、これらの演算子はオブジェクトの値ではなく参照を比較するからである。プログラマはこの動作に驚くかもしれない。オートボクシングはいくつかのプリミティブの値をメモ化(memoizeあるいはキャッシュ)しており、参照の比較と値の比較は、メモ化された一部の値に関しては同じ結果を示すことがある。 オートボクシングは、プリミティブ型の値を対応するラッパーオブジェクトで自動的にラップする。Java 言語仕様 の §5.1.7, 「ボクシング変換」には、オートボクシングの際にどのプリミティブ型の値がメモ化されるか記述されている[JLS 2005]。 ボクシング変換の対象となる値 p が true, false, byte, \u0000 から \u007f までの範囲にある char, あるいは -1

    EXP03-J. ボクシングされたプリミティブ型の値の比較に等値演算子を使わない
  • Pimpleでシンプルに正しくDIを理解する

    オブジェクト指向でソフトウェアを実装していると、オブジェクトの生成に一連の手続きが必要なものがでてきます。このような生成に関する手続きがあちこちのソースコードへ散在すると、望ましくない状況になることは想像に難くないでしょう。この問題に対処するために、Simple FactoryやFactory Methodといったデザインパターンがあり、オブジェクトの生成に関する手続きや関連オブジェクトも含めたオブジェクトの構成(オブジェクトコンストラクション)に関する知識は1箇所にまとめるということが定石となっています。 しかし、単にファクトリーを導入するだけだと、オブジェクトの構成処理は分離・隠蔽できても、利用オブジェクトがファクトリー自体に依存してしまうことになります。このような試行錯誤の歴史から登場したのがDependency Injection(依存性の注入)パターンです。Dependency

    Pimpleでシンプルに正しくDIを理解する
  • 1