ヘッダーインタフェースと役割インタフェース

RoleInterface

インタフェースのメソッドやプロパティのまとめ方としてヘッダーインタフェースと役割インタフェースの2パターンがあって説明している。
役割インターフェースは今までもOOの世界では利用されていたが、ヘッダーインタフェースというのは聞いたことが無かった。あいかわらずFowlerは名前付けが上手い。

ヘッダーインタフェースはクラス実装のバリエーションを保護しているが、他クラスとどのように協調するかの観点では整理されずに作成されているため、冗長であったり変更に敏感なインタフェースとなる可能性が高い。もちろん、役割インタフェースを定義するためには、より幅広い利用シナリオを考える必要があるが、リッチドメインを指向するので個人的には特に気にならない。


もちろん、役割インタフェースの方が好みであることは間違いない。