DIPに反するコード
継承を使ったクラスで、初心者にありがちな、DIP(Dependency Inversion Principle:依存関係逆転の原則)に反するコードを見つけたので紹介。
以下の継承関係を持ったクラスがあるとする。
public class Foo { } public class FooEx extends Foo { }
このとき、Foo クラスにこんなコードが書かれてたり。。。
public class Foo { : void someMethod() { Foo foo = getFoo(); if (foo instanceof FooEx) { : } } }
Foo クラスが FooEx クラスに依存しちゃってるし。サブクラスが存在しないとコンパイルできないってどういうことよ。