[Design Pattern] SOLID 원칙

younghyun·2022년 10월 25일
0

Design Pattern

목록 보기
2/14
post-thumbnail

객체지향 설계의 5원칙 - SOLID

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

  • 클래스가 변경되어야 하는 이유는 한 가지로만 구성
  • 클래스의 역할을 한 가지로 구성
  • 사용자와의 관계에 대해서 고민해야 함
  • 문제점: 클래스에 기능이 너무 많으면 유지 보수가 어려워짐

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

  • 확장에 대해서는 열려 있어야 하고, 변경에 관련해서는 닫혀 있어야 함

  • 기존 코드를 변경하지 않고 확장할 수 있도록 만들어야 함

  • 변경되지 않을 부분(닫힌 부분)과 변경될 부분(열린 부분)을 분리

  • 다형성 사용 door.open();

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

  • 자식 클래스는 부모 클래스를 대체할 수 있어야 함
  • 부모 클래스 객체 대신 자식 클래스 혹은 후손 클래스 객체를 사용했을 때 문제없이 프로그램이 동작해야 함

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

  • 여러 개 클라이언트에 필요한 기능을 가지고 있는 일반화된 인터페이스보다는 각 클라이언트에 특화되어 있는 인터페이스를 사용
  • 자바의 파일 입출력 클래스들을 보면, 입력과 출력 클래스들이 나뉘어 있음

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

  • 기능을 직접 구현한 구체(구상) 클래스 또는 함수보다는 추상 클래스나 인터페이스를 사용하는 코드를 작성하라
  • 사용하는 클래스는 사용되는 클래스에 직접적으로 의존하지 않음(추상 클래스나 인터페이스를 정하고 그것을 사용
    하는 형태로 구현)
  • 기능을 직접 구현한 클래스나 함수는 변경될 가능성이 높음

profile
🌱 주니어 백엔드 개발자입니당

0개의 댓글