クラスがインタフェースを実装すること

たまには言語化してみるか。

そもそも、インタフェースはドメインを抽象的に表現した概念、振る舞いを待つ。一方で、クラスはその概念を実際に表現したもの、いわば詳細。具体的な型。

その上で、クラスはインタフェースを実装する。つまり、インタフェースの概念を満たすようなメソッドを作成する。

メリット

  • ドメインルールの変更に強い

    • 同じ階層に新しい概念が出てきてもifやwhenにコードを増殖しないでいい。つまり影響範囲を小さくソースコードに変更を加えることができる。

  • ドメインのルールを一箇所に集約できる

    • 凝集度が高く、可読性が高い

  • 型安全性が高まる

    • 状態やルールが型として表現されているため、コンパイル時に不正なコードとして気づきやすい。


yusei53の画像
yusei53

yusei53 has shared 217 reflections. Discover new insights this platform.