「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみるはただの設計ミス
@irof氏の「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみるについてはNullObjectパターンを適用する形で終わってるけれども、それはちょっとおかしい気がする。
そもそもなぜ、淡路島はget路線()メソッドを持っているのだろうか?
"淡路島クラス"が存在すると考えよう。
"淡路島クラス"自体は"地域インターフェース"を実装していると考えられる。
class 淡路島 implements 地域
すべての地域が路線を持っていなければいけないのだろうか?いや、そんなことはない。
地域とは別に路線敷設地域(仮称)というインターフェースがあってしかるべきではないだろうか。
class 東京 implements 地域, 路線敷設地域
淡路島自体に路線はないわけだから路線敷設地域インターフェースは実装しているわけがない。
よって、get路線()メソッドがあることがそもそも間違いだと考える。
必ず実装しなければいけないメソッドが必ずnullを返す時点でインターフェースが適切に分割されてないことを疑うべきではないではないか。
と、昼休み10分でまとめてみる。