객체 지향 설계 5원칙 (SOLID)와 SoC

Minkuk Jo·2020년 1월 31일
0

단일 책임 원칙::Single Responsibility Principle

  • 어떤 클래스를 변경해야 하는 이유는 오직 하나여야 한다.
  • 메소드가 단일 책임 원칙을 지키지 않을 경우 나타나는 대표적인 예가 분기 처리를 위한 if문이다.

개방 폐쇄 원칙::Open Closed Principle

  • 클래스, 모듈, 함수 등은 확장에 대해서 열려있어야 하지만 변경에 대해서는 닫혀 있어야 한다.

리스코프 치환 원칙::Liskov Substitution Principle

  • 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다.
    * 하위 클래스 is kind of 상위 클래스
    • 구현 클래스 is able to 인터페이스
  • 하위 클래스의 인스턴스는 상위 타입 객체 참조 변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제가 없어야 한다.

인터페이스 분리 원칙::Interface Segregation Principle

  • 클라이언트는 자신이 사용하지 않는 메소드에 의존 관계를 맺으면 안된다.

의존 역전 원칙::Dependency Inversion Principle

  • 고차원 모듈은 저차원 모듈에 의존하면 안된다. 이 두 모듈 모두 다른 추상화된 것에 의존해야 한다.
  • 추상화된 것은 구체화된 것에 의존하면 안된다. 구체적인 것이 추상화된 것에 의존해야 한다.
  • 자신보다 변하기 쉬운 것에 의존하면 안된다.

SoC (Separation Of Concerns)

  • 관심사가 같은 것끼리는 하나의 객체 또는 친한 객체로 모은다.
  • 관심사가 다른 것은 가능한 한 따로 떨어져 서로 영향을 주지 않도록 분리한다.
  • 하나의 속성, 메소드, 클래스, 모듈, 패키지에는 하나의 관심사만 들어있어야 한다.
profile
앞으로 모든 건 github에 집중! https://github.com/J-minkuk

0개의 댓글