-
디자인패턴은 많은 개발자들에 의해 입증된 방법, 좋은 사례의 모음이다. 개발자와 설계자의 공통 언어라 할 수 있다.
객체지향 언어의 원칙을 기본으로 한다.
캡슐화: 데이터와 함수를 하나로 묶는다.
정보 은닉: 데이터를 숨기고 연산만을 통해 접근을 허용한다.
추상화: 불필요한 부분을 생략하고 중요한 것만 남겨 모델화한다.
상속성: 하위 클래스는 상위 클래스의 모든 속성과 연산을 물려받는다.
다형성: 하나의 메시지에 대해 객체마다 고유한 방법으로 반응한다. 서로 다른 클래스의 인스턴스를 같은 방법으로 다룰 수 있다.
디자인 패턴 설계 원칙
단일 책임 원칙: 하나의 클래스는 하나의 역할을 담당한다.
개방 폐쇄의 원칙: 확장에는 열려 있고, 변형에는 닫혀 있도록 한다.
리스코프의 대체 원칙: 상위 타입 객체를 (상속받은)하위 타입의 객체로 치환해도 정상적으로 동작해야 한다.
인터페이스 분리의 원칙: 하나의 일반적인 인터페이스 대신 구체적인 여려 인터페이스를 사용해야 한다.
의존 역전의 원칙: 구현 클래스에 필요하다면 추상 클래스를 변경할 수 있다.
디자인 패턴의 분류 기준
디자인 패턴은 범주에 따라 클래스와 객체로, 목적에 따라 생성, 구조, 행동으로 분류할 수 있다.
UML 클래스 다이어그램
UML 클래스 다이어그램은 클래스 내부의 필드와 메소드, 클래스간의 연결 관계를 나타낸다.
<<interface>> 인터페이스 클래스 이탤릭 추상 클래스
+ public # protected - private / derived 밑줄 static
get/set 메소드, 상속된 메소드는 생략한다.
상속은 부모를 향한 화살표로 표시한다. 클래스는 실선/ 검은 헤드, 추상 클래스는 실선/흰색 헤드. 인터페이스는 점선/흰색 헤드 화살표로 표시한다.