검색결과 리스트
ISP에 해당되는 글 1건
- 2011.08.17 객체지향의 원칙
글
객체지향의 원칙
디자인 패턴에 대한 학습에 앞서 객체지향적인 소프트웨어 설계를 위한 5가지 원칙에 대해 알아보자.
앞으로 소개할 5가지의 원칙보다 가장 우선시 되는 원칙은 "고객의 요구사항 만족의 원칙" 일 것이다.
다른 모든 원칙은들은 이 원칙에 의해 조정되고 필요할 때는 무시될 수 있다.
소프트웨어 설계를 하다보면 어떻게 설계하는 것이 더 좋을까? 는 의문이 점점 더 짙어질 것이다.
이때 5가지 원칙을 지침삼아 결정하도록 하자...
1. 개방-폐쇄의 원칙 (OCP - Open-Closed Principle)
확장에는 열려있고, 변경에는 닫혀있도록 설계하라는 원칙이다.
> 변하는 사항들을 잘 캐치하여 이러한 부분들에 대한 확장점을 고려하여 설계를 하되, 명시적으로 제공하지 않는
인터페이스를 통해 클래스가 변경되지 않도록 반드시 필요한 인터페이스만 노출하여 잘 캡슐화 하라는 의미이다.
2. 리스코프 치환 원칙 (LSP - Liskov Substitution Principle)
수퍼클래스가 사용된 자리를 서브클래스로 대체하여도 잘 작동해야 한다는 원칙이다.
> 객체지향 언어의 상속과 인터페이스 메커니즘이 이를 잘 지원하고 있다.
3. 의존관계 역전의 원칙 (DIP - Dependency Inversion Principle)
구체적인 것이 아닌 추상적인 것에 의존하게 하라는 원칙이다.
> 추상적인 것에 의존하게 되면 LSP에 따라 구현체를 교체할 수있으며 그만큼의 유연성을 얻을 수 있다.
4. 인터페이스 분리의 원칙 (ISP - Interface Segregation Principle)
하나의 일반적인 인터페이스 보다는 다수의 구체적인 인터페이스를 사용하라는 원칙이다.
> 인터페이스를 세부적으로 분리하면 다양한 인터페이스 조합을 갖는 유연한 클래스를 사용할 수 있기 때문이다.
5. 단일 책임의 원칙 (SRP - Single Responsibility Principle)
하나의 클래스는 타당한 하나의 책임만을 담당해야 한다는 원칙이다.
> 클래스가 방대해져서 복잡해지는 것을 막기 위해 오직 한가지 책임에 전념하라는 원칙이다. 다양한 역할을 하는 하나의
클래스 보다는 서로 다른 역할을 하는 여러 클래스를 선호하라는 의미이다.
'디자인패턴로그' 카테고리의 다른 글
| 객체지향의 원칙 (0) | 2011.08.17 |
|---|---|
| 알고리즘과 데이터 구조 그리고 패턴 (0) | 2011.08.16 |
| 디자인 패턴에 대한 고찰 (0) | 2011.08.16 |