Programing

SOLID 개발 원칙

BUST 2018. 11. 16. 23:37

SOLID 개발 원칙


SRP (단일 책임의 원칙)

  • 클래스가 제공하는 기능은 하나의 책임을 수행하는 집중되어야 된다.
  • 코드의 가독성 항샹, 유지보수 용이
  • 책임 영역이 확실해지 때문에 한 책임의 변경에서 다른 책임의 변경으로 연쇄 작용을 용이해진다.

OCP (개방 폐쇄의 원칙 : Open Close Principle)

  • 소프트웨어 구성요소 (컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려 있고, 변경에는 닫혀 있어야 된다는 원리
  • 요구사항 변경이나 추가사항이 발생하더라도, 기존 구성요소는 수정이 일어나지 않아야 되고, 쉽게 확장하여 재사용할수 있어야 된다.
  • 변경(확장)될 것과 변하지 않을 것을 엄격하게 구별을 하고 이 모듈이 만나는 지점을 인터페이스를 정의한다.
    • 구현에 의존하기 보다는 정의한 인터페이스에 의존하도록 코드를 작성을 한다.

LSP (리스코브 치환의 원칙: The Liskov Substitution Principle)

  • 서브타입은 언제나 기반타입으로 교체할수 있어야한다.
  • 서브타입은 언제나 기반타입과 호환 될수 있어야 한다

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

  • 자신이 사용하는 않는 인터페이스는 구현하지 말아야 한다는 원리
  • 하나의 일반적인 인터페이스 보다는 여러개의 구체적인 인터페이스가 낫다.
  • ex) Java Swing의 JTable - Accessible, CellEditorListener, ListSelectionListener, Scrollable, TableColumnModelListener, TableMoldelListener

DIP (의존성역전의 원칙: Dependency Inversion Principle)

  • 하위 레벨 모듈의 변경이 상위 레벨 모듈의 변경을 요구하는 위계관계를 끊는 의미의 역전이다.
  • IoC
  • Layering Interface
    • 통신 프로그래밍 모델
    • send(), & recv()
  • Event Driven & Callback


'Programing' 카테고리의 다른 글

Thread와 Process  (0) 2018.11.29
Cache  (0) 2018.11.20
RESTful API  (0) 2018.10.28
Event Sourcing  (0) 2018.10.16
Actor Model  (0) 2018.10.02