소프트웨어 공학시간에 배우게 되는 5개의 설계 원칙에 대한 내용입니다.
1. 단일 책임의 원칙(SRP : Single Responsibility Principle)
- 한 객체는 하나의 책임을 져야 한다는 원칙으로 높은 응집도와 낮은 결합도를 기본으로 하고 있다.
2. 의존 관계 역전의 법칙(DIP : Dependency Inversion Principle)
- 클라이언트는 상세 클래스가 아닌 추상화(인터페이스, 추상클래스) 레이어에 의존해야 한다는 원칙으로, 확장 이슈가 있는 부분은 부분은 추상화를 해야 된다는 내용입니다.
3. 인터페이스 분리의 원칙(ISP : Interface Segregation Principle)
- 클라이언트에 특화된 여러개의 인터페이스가 하나의 범용 인터페이스보다 낫다
4. 리스코프 대체 원칙(LSP : Liskov Substitution Principle)
- 상위 클래스는 파생클래스로 대체 가능해야 되는 원칙으로, 기반클래스의 기능은 파생클래스가 포함을 해야 된다는 내용입니다. 따라서, 파생클래스는 상위클래스보다 더 많은 기능을 제공을 하게 되겠습니다. 아래의 lsp.doc 파일은 전에 스터디를 하면서, C#으로 만들어본 예제입니다.
5. 개방 폐쇄 원칙(Open-Closed Principle)
- 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다는 원칙으로 기존의 클래스에 수정하지 말고, 상속 또는 구현으로 확장을 해야 된다는 내용입니다.
1. 단일 책임의 원칙(SRP : Single Responsibility Principle)
- 한 객체는 하나의 책임을 져야 한다는 원칙으로 높은 응집도와 낮은 결합도를 기본으로 하고 있다.
2. 의존 관계 역전의 법칙(DIP : Dependency Inversion Principle)
- 클라이언트는 상세 클래스가 아닌 추상화(인터페이스, 추상클래스) 레이어에 의존해야 한다는 원칙으로, 확장 이슈가 있는 부분은 부분은 추상화를 해야 된다는 내용입니다.
3. 인터페이스 분리의 원칙(ISP : Interface Segregation Principle)
- 클라이언트에 특화된 여러개의 인터페이스가 하나의 범용 인터페이스보다 낫다
4. 리스코프 대체 원칙(LSP : Liskov Substitution Principle)
- 상위 클래스는 파생클래스로 대체 가능해야 되는 원칙으로, 기반클래스의 기능은 파생클래스가 포함을 해야 된다는 내용입니다. 따라서, 파생클래스는 상위클래스보다 더 많은 기능을 제공을 하게 되겠습니다. 아래의 lsp.doc 파일은 전에 스터디를 하면서, C#으로 만들어본 예제입니다.
5. 개방 폐쇄 원칙(Open-Closed Principle)
- 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다는 원칙으로 기존의 클래스에 수정하지 말고, 상속 또는 구현으로 확장을 해야 된다는 내용입니다.
'ooad' 카테고리의 다른 글
| OOP 설계 5원칙 (2) | 2010/07/19 |
|---|---|
| Singleton Pattern (0) | 2010/04/29 |
| Null Object Pattern (2) | 2009/09/17 |
| Specification Pattern (2) | 2009/09/16 |
| 디자인 패턴 그리고 그 이후.. (0) | 2009/09/16 |
lsp.doc