Upload
scor7910
View
1.246
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
REFLECTIONARCHITECTURE PATTERN
아 . 꿈 . 사 스터디 그룹(http://cafe.naver.com/architect1)
발표 : 김연기(SCOR7910.TISTORY.COM)
소프트웨어 시스템의 구조와 동작을 동적으로 변경할수 있는 메커니즘 제공 .
REFLECTIONARCHITECTURE PATTERN
REFLECTIONARCHITECTURE PATTERN
REFLECTIONARCHITECTURE PATTERN
REFLECTIONARCHITECTURE PATTERN
Context : 원하는 기능이 동적으로 수행이 되는 시스템을 구축해야 한다 .Problem :
기존 코드를 수정하는데 귀찮다… ( ㅡ _ㅡ ;;)복잡하고 변경이 잦은 코드를 분리하여 시스템의 복잡성을 감춰야 하는데 귀찮다 ...그냥 귀찮다 !!!
REFLECTIONARCHITECTURE PATTERN
Solution : 동적으로 오브젝트가 스스로 구조와 동작을 알아서 할 수 있도록 한다 .
REFLECTIONARCHITECTURE PATTERN
메타 오브젝트 : 기본 레벨의 구조 ,동작 , 상태 중 한 측면 (Aspect) 를 선택해 그 정보를 캡슐화 ( 은닉 ) 한다 .
메타레벨 : 오브젝트의 구조와 동작에 대해 자체 설명 (Self Representation) 제공 .
기본 레벨 : 메타 객체를 이용하여 동작 로직을 정의 한다 .
REFLECTIONARCHITECTURE PATTERN
Structure
REFLECTIONARCHITECTURE PATTERN
Dynamic : Base Level 과 Meta-Level 동작 예
REFLECTIONARCHITECTURE PATTERN
Dynamic :Metaobject Protocol 동작 예
REFLECTIONARCHITECTURE PATTERN
implementation Application 의 모델을 정의 한다 .변경 되는 동작 정의 .변경 되지 않는 동작 정의 .변경 되거나 되지 않는 동작의 구조적 제약에 상관없는 시스템 서비스 정의 .Meta Object 정의 .Meta Object Protocol 정의 .기본 레벨 정의 .
REFLECTIONARCHITECTURE PATTERN
장 /단점변경이 쉽다 .다양한 종류의 변경을 지원한다 .
메타레벨에 수정을 가할 경우 문제가 발생할 수 있다 .속도가 느려진다 . (C++ virtual table).잠재적인 모든 변화를 지원할 수 없다 .모든 언어가 Reflection 을 완벽히 지원하지 않는다 .(C++ 는 타입식별만 지원 )
REFLECTIONARCHITECTURE PATTERN
참고 자료http://www.vollmann.com/pubs/meta/meta/meta.htmlhttp://www.garret.ru/cppreflection/docs/reflect.html#introduction