Clean Architecture: Chapter 5. Object-Oriented Programming

オブジェクト指向の利点は、ポリモーフィズムのサポートによって、サブモジュールの詳細と独立して上位のモジュールを開発できるプラグインアーキテクチャを可能にしてくれる所にある。

オブジェクト指向設計とは何だろうか?

逆説的な語り口。いくつかの説明がある。

  • 「データと関数の組み合わせ」
    • f(o)の代わりにo.f()と書こう、と言っているに過ぎない
  • 「現実世界をモデリングする方法」
    • 「現実世界をモデリングする」とは何なのかを説明していない
  • カプセル化・継承・ポリモーフィズムという3つのキーワードで語られることがある

オブジェクト指向言語カプセル化・継承・ポリモーフィズムをサポートしているのか

ポリモーフィズムの利点

  • サブシステムの実装に依存せずにプログラムが書ける
    • UNIXが様々なI/OデバイスFILEとして抽象化しており、プログラム側ではデバイスの種類を区別しないで済むのと同じ
  • UIやデータベースをインタフェースを介して抽象化することで、ビジネスロジックがUIやデータベースの実装に依存しない(インタフェースのみに依存する)ようにできる!

Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)

Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)