단일 책임 원칙(Single Responsibility Principle , SRP)

  • 객체는 단 하나의 책임만을 가져야 한다. 책임이 많아지면 클래스 내부의 함수끼리 강한 결합을 발생할 가능성이 높아지며 이는 유지보수에 비용이 증가하게 되므로 책임을 분리시킬 필요가 있다.

개방 폐쇄 원칙(Open Closed Principle, OCP)

  • 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다.
  • OCP를 만족한 설계는 변경에 유연하므로 유지보수 비용을 줄여주고 코드의 가독성 또한 높아지는 효과를 얻을 수 있다.

리스코프 치환 원칙(Liskov Substitution Principle, LSP)

  • 자식 클래스는 부모 클래스에서 가능한 행위를 수행할 수 있어야 한다.
  • 상속 관계에서는 일반화 관계(IS-A)가 성립해야 한다. 일반화 관계에 있다는 것은 일관성이 있다는 것이다.

인터페이스 분리 원칙(Interface Segregation Principle, ISP)

  • 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다. 하나의 일반적인 인터페이스 보다는 여러개의 구체적인 인터페이스가 낫다. 자신이 사용하지 않는 기능에는 영향을 받지 말아야 한다.

의존 역전 원칙(Dependency Inversion Principle)

  • 의존 관계를 맺을 때 변화하기 쉬운 것 보단 변화하기 어려운 것에 의존해야 한다. 의존관계를 맺을 때 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺는 게 변화에 유연하게 대처할 수 있다.

'Computer science > 디자인패턴 및 프로그래밍 패러다임' 카테고리의 다른 글

캡슐화  (0) 2023.06.30
상속과 합성  (0) 2023.06.30
객체지향과 절차지향  (0) 2023.06.30
싱글톤 패턴  (0) 2022.12.15

+ Recent posts