オブジェクト指向
オブジェクト指向とは、データ(状態)とその振る舞いを「オブジェクト」という単位にまとめて設計するという考え方。
メリット
変更の影響範囲を閉じ込めやすい。データに関連する状態と振る舞いはオブジェクト内で完結している。(ただし現実ではそうはいかない)
債務を管理しやすい。業務上の概念とコードを対応させやすい。DDDはオブジェクト指向に基づいたアプリケーションの設計アプローチ。
拡張しやすい。インターフェースを使って振る舞いだけを定義して、具体クラスは様々な種類を持たせる、などの設計が可能。
デメリット
正しい責任範囲を設定することは難しい。責任を細かくしすぎると、境界が増える、依存関係が複雑になる。
まとめ
オブジェクト指向のメリットは、ある状態と振る舞いを境界に閉じ込めることでシステムを変更しやすくする・継続的にメンテしやすくすることができる。 一方で、これはデメリットにもなりうる。たくさんの状態・振る舞いが増えると、途端に依存関係が複雑になり、新しいメンテナンスコストが発生する。