디자인 패턴
객체지향 프로그램에서 유연하고 확장성 있는 설계가 가능한 예시를 제시
객체 지향 프로그래밍 특성
- 추상화
- 캡슐화
- 상속
- 다형성
객체 지향 디자인 원칙 (Object Oriented Design Principle)
- 애플리케이션의 달라지는 부분을 찾아내고, 달라지지 않는 부분과 분리한다. 새로운 요구사항이 있을때 마다 달라지는 부분을 분리해야한다.
- 구현보다는 인터페이스에 맞춰서 프로그래밍을 한다.
- 상속보다는 합성을 사용한다.
- Abstract class vs Concrete class(구상 클래스, 구체 클래스)
- Class Inheritance(상속) vs Object composition(합성)
- Interface inheritance(인터페이스를 구현한 클래스를 유연하게 사용) vs Implementation inheritance(구현에 종속적임)
SOLID 원칙
- 단일 책임의 원칙
- 개방 폐쇄의 원칙
- 리스코프 치환 원칙
- 의전 역전 원칙
- 인터페이스 분리 원칙
디자인 패턴 특징
- 언어에 종속적이지 않음
- 프래임워크 개발에 적용 가능
- 특정 영역에 종속적이지 않고 일반적으로 활용 가능
- 좋은 설계에 대한 제안
디자인 패턴 쓰는 이유
- 소프트웨어의 요소들을 향상시킴
- 리팩토링 가능
- 유지보수 비용 절약
용어
인터페이스 : 구현이 되지 않고 선언만 되어있는 것, API를 생각하면 될듯
자바에서 상속 : 일반적인 클래스에서 구체적인 클래스를 구현하는 것 (코드의 재사용이 아님 -> 이건 합성)
합성 : 코드의 재사용을 생각하기
출처 : https://inf.run/hxDx
'Computer Science > 디자인 패턴' 카테고리의 다른 글
[디자인 패턴] Factory (0) | 2023.04.07 |
---|---|
[디자인 패턴] 디자인 패턴 종류 (0) | 2023.02.22 |