Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

SOLID 원칙 본문

Java/디자인 패턴

SOLID 원칙

Seung__ 2021. 11. 4. 20:31

1. 단일 책임 원칙(Single Responsibility Printciple)


  • 하나의 클래스는 하나의 기능만을 구현. 즉 어떤 클래스를 변경하는 이유는 하나이어야 한다.
  • 한 클래스에서 여러 기능을 제공하게 되면 유지보수가 어려움.

 

 

2. 개방 폐쇄의 원칙(Open-Close Principle)


  • 객체 자신의 수정에 대해서는 유연하고, 다른 클래스가 수정될 때는 영향을 받지 않느다.
  • 인터페이스나 추상 클래스를 통해 접근 하도록 함.
  • 자바 JDBC, I/O Stream

 

 

3. 리스코프 치환 원칙(Liskov Subsitution Principle)


  • 하위 클래스는 항상 상위 클래스도 교체될 수 있어야 한다. 
  • 즉, 상위 클래스가 제공하는 여러 기능은 하위 클래스가 모두 사용가능 해야 한다.
  • Is-A 관계, "is a king of " 관계

 

 

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


  • 제공하는 기능에 대한 인터페이스에만 종속적이어야 함.
  • 만약 하나의 객체가 여러 기능을 제공해야 한다면(단일 책임 원칙에 위배) 
  • 이 때 클라이언트가 사용할 수 있는 여러 인터페이스로 분리하여 제공하면
  • 클라이언트가 사용하지 않는 기능에 대해 종속적이지 않을 수 있음.
  • 기능 별로 인터페이스 분리.

 

 

5. 의존 역전 원칙(Dependency Inversion Principle)


  • 의존 관계는 구체적인 것 보다는 추상적인 것에 의존(인터페이스, 추상클래스에 의존)
  • 구체적인 것은 이미 구현이 되어 있고 변하기 쉬운 것.
  • 추상적인 것은 인터페이스나 추상 클래스(상위 클래스)

 

Comments