oop solid 란
simuruk wiki
{| class="wikitable" style="width: auto; font-size: 95%; table-layout: fixed; line-height:1.25; margin-left: auto; margin-right: auto;" |- ! 두문자 !! 약어 !! 개념 |- ! S | SRP |
- 단일 책임 원칙 (Single responsibility principle)
- 한 클래스는 하나의 책임만 가져야 한다.
|- ! O | OCP |
- 개방-폐쇄 원칙 (Open/closed principle)
- “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.”
|- ! L | LSP |
- 리스코프 치환 원칙 (Liskov substitution principle)
- “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라.
|- ! I | ISP |
- 인터페이스 분리 원칙 (Interface segregation principle)
- “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”<ref name="martin-design-principles">“Design Principles and Design Patterns” 틀:웨이백, 로버트 마틴</ref>
|- ! D | DIP |
- 의존관계 역전 원칙 (Dependency inversion principle)
- 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.”<ref name="martin-design-principles"/> 의존성 주입은 이 원칙을 따르는 방법 중 하나다.
|}
- SRP: 단일책임의 원칙(Single Responsibility Principle)
- 한 클래스는 하나의 책임만 가져야 한다.
- OCP: 개방폐쇄의 원칙(Open Close Principle)
- 소프트웨어 요소는 …… 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
- LSP: 리스코브 치환의 원칙(The Liskov Principle)
- 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
- 계약에 의한 설계를 참고하라. 객체는 깨짐 없이 하위 클래스로 치환 될수 있어야한다, 부모의 기능을 자신은 다 구현해야한다.
- ISP: 인터페이스 분리의 원칙(Interface Segregation Principle)
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
- DIP: 의존성역전의 원칙(Dependency Inversion Principle)
- 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.”
- 의존성 주입은 이 원칙을 따르는 방법 중 하나다.
- 여러분의 소프트웨어가 고객이 원하는 기능을 하도록 하세요.
- 객체지향 기본원리를 적용해서 소프트웨어를 유연하게 하세요.
- 유지보수와 재사용이 쉬운 디자인을 위해 노력하세요.