반응형
"GoF 디자인 패턴! 이렇게 활용한다"에는 클래스 다이어그램과 시퀀스 다이어그램을 사용하여 디자인 패턴을 설명합니다. 그럼 책을 보기 위해서 필수적으로 알아야 할 클래스 다이어그램의 표기법을 알아보겠습니다.
링크 : http://blog.naver.com/witchope?Redirect=Log&logNo=30077417714
2) 약한 참조(일시적)
3. 상속
4. 집합, 포함 관계
1) 강한 소유 : 전체 소멸시 부분도 함께 소멸
2) 약한 소유 : 서로 독립적인 관계로 생명주기가 다름
링크 : http://blog.naver.com/witchope?Redirect=Log&logNo=30077417714
□ UML (Unified Modeling Language)
1. 여러 방법론의 표기법을 통합한다는 의미의 모델링 언어
2. UML 특징
- 그래픽 심볼로 표현
- 명세화 되어있어 명세서 역할 가능
- 시스템 구조의 모든 상세 내역에 대한 문서화
- 프로그래밍 코드 생성 및 역공학 가능
3. UML 목적
- User에게 쉽고 가시적인 모델링 언어제공
- 개발 언어 및 프로세스 와는 독립적인 spec 제공
□ UML 표기법
1. 엔티티
1) 클래스 (Class)
클래스명 |
변수명:변수타입 |
함수명(파라메터명:파라메터 타입):리턴타입 |
2) 인터페이스 (Interface)
인터페이스명 |
- 인터페이스는 실제 구현부가 없으므로 위와 같이 표현된다.
2. 참조
1) 강한 참조(지속적)
class A {
B b;
};
class B { };
B b;
};
class B { };
2) 약한 참조(일시적)
class A {
void Function(B b) {
}
};
class B { };
void Function(B b) {
}
};
class B { };
3. 상속
class A {
};
class B : public A {
};
class C : public A {
};
};
class B : public A {
};
class C : public A {
};
4. 집합, 포함 관계
1) 강한 소유 : 전체 소멸시 부분도 함께 소멸
class A {
B* b;
void Function() {
this->b = new B;
}
};
class B { };
B* b;
void Function() {
this->b = new B;
}
};
class B { };
2) 약한 소유 : 서로 독립적인 관계로 생명주기가 다름
class A {
B* b;
void Function(B* b) {
this->b = b;
}
};
class B { };
B* b;
void Function(B* b) {
this->b = b;
}
};
class B { };
코멘트
인터페이스 상속에 대해서는 작성하지 않았습니다.
디자인 패턴이 특정 언어에만 국한된 것은 아니지만 C++에는 인터페이스가 없기 때문이고, 위에서 설명을 위한 소스가 C++ 문법인데, 갑자기 자바 문법을 사용하면 통일성이 깨져서 입니다.
하지만 C++에서도 클래스를 인터페이스처럼 사용을 할 수 있습니다. 그렇다고해도 클래스죠.. 그래서 클래스의 다중 상속 문제는 해결 할 수 없습니다.
궁금하신분은 인터넷에 검색하시면 보실 수 있습니다.
인터페이스 상속에 대해서는 작성하지 않았습니다.
디자인 패턴이 특정 언어에만 국한된 것은 아니지만 C++에는 인터페이스가 없기 때문이고, 위에서 설명을 위한 소스가 C++ 문법인데, 갑자기 자바 문법을 사용하면 통일성이 깨져서 입니다.
하지만 C++에서도 클래스를 인터페이스처럼 사용을 할 수 있습니다. 그렇다고해도 클래스죠.. 그래서 클래스의 다중 상속 문제는 해결 할 수 없습니다.
궁금하신분은 인터넷에 검색하시면 보실 수 있습니다.
반응형
'컴퓨터 일반 > 디자인패턴' 카테고리의 다른 글
UML - 클래스 다이어그램 (0) | 2012.04.13 |
---|---|
UML 개요 및 다이어그램 종류 (0) | 2011.12.14 |
4장. Builder 패턴 - 부분 부분 생성을 통한 전체 객체 생성 (0) | 2010.12.10 |
3장. Abstract Factory 패턴 - 제품군별 객체 생성 (0) | 2010.12.04 |
UML (Unified Modeling Language) (1) (0) | 2010.12.04 |
디자인패턴 목차 (0) | 2010.10.27 |