0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

インターフェイス分離の原則

Posted at

インターフェイス分離の原則(Interface Segregation Principle, ISP)は、ソフトウェア設計の原則の一つで、SOLID原則の一部である。この原則は、「クライアントは使用しないメソッドに依存するべきではない」という考え方に基づいている。つまり、大きくて汎用的なインターフェイスよりも、小さくて特定のクライアントに特化したインターフェイスを設計するべきであるという原則です。

違反している
class DocumentGenerator
  def generate_pdf
    # PDFドキュメント生成のロジック
  end

  def generate_word
    # Wordドキュメント生成のロジック
  end

  # 他のドキュメントタイプの生成メソッドもここに含まれる
end

違反理由
DocumentGeneratorクラスにgenerate_pdfとgenerate_word というメソッドが両方とも含まれている場合、特定のレポート(例えばPDFレポート)にのみ関心があるクライアントが Report クラスのインスタンスを使用するとき、そのクライアントは理論上、generate_word という使用しないメソッドにも間接的に依存することになります。

遵守している
module DocumentGenerator
  class PdfDocument
    def generate
      # PDFドキュメント生成のロジック
    end
  end

  class WordDocument
    def generate
      # Wordドキュメント生成のロジック
    end
  end

  # 他のドキュメントタイプも同様に定義
end

PdfDocumentはpdfの生成にのみ関心があるクラスである

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?