[JAVA] OOP 5대원리 : SOLID (객체 지향 설계)

OOP 5대원리 : SOLID (객체 지향 설계)

SRP (The Single Responsibility Principle)

  • 한 클래스는 하나의 책임만 가져야 한다
  • 한 클래스는 하나의 목적에 맞도록만 짜라
  • 하나의 책임원리->응집도 관력

OCP(The Open-Closed Principle)

  • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다
  • 개방 폐쇠의 원리->엔티티,상속(부모 변경 지양)
  • A–>B (A를 변경하지 않고 B를 변경)
  • 객체 지향 프로그램은 이 방법을 따르는게 좋다라는 원리 

LSP (The Liskov Substitution Principle)

  • 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다
  • 부모의 이름으로 자식을 써라
  • 리스코프 교체원리
  • 다형성 관련(부모로 자식을 사용–>인터페이스 사용권장)

DIP(The Depend Inversion Principle)

  • 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다”
  • 의존성 주입은 이 원칙을 따르는 방법 중 하나다
  • 의존의 대상을 추상 클래스나 인터페이스 권장

ISP (The Interface Segregation Principle)

  • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다
  • 인터페이스 격리 원칙
  • 필요한 메서드만 갖는 인터페이스를 구현하라
  • SRP와 유사

references

https://ko.wikipedia.org/wiki/SOLID_(%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84) https://www.geeksforgeeks.org/solid-principle-in-programming-understand-with-real-life-examples/

Tags: ,

Categories:

Updated: