13
REFLECTION ARCHITECTURE PATTERN 아 . 아 . 아 아아아 아아 (http://cafe.naver.com/ architect1) 아아 : 아아아 (SCOR7910.TISTORY.COM)

Reflection

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Reflection

REFLECTIONARCHITECTURE PATTERN

아 . 꿈 . 사 스터디 그룹(http://cafe.naver.com/architect1)

발표 : 김연기(SCOR7910.TISTORY.COM)

Page 2: Reflection

소프트웨어 시스템의 구조와 동작을 동적으로 변경할수 있는 메커니즘 제공 .

REFLECTIONARCHITECTURE PATTERN

Page 3: Reflection

REFLECTIONARCHITECTURE PATTERN

Page 4: Reflection

REFLECTIONARCHITECTURE PATTERN

Page 5: Reflection

REFLECTIONARCHITECTURE PATTERN

Context : 원하는 기능이 동적으로 수행이 되는 시스템을 구축해야 한다 .Problem :

기존 코드를 수정하는데 귀찮다… ( ㅡ _ㅡ ;;)복잡하고 변경이 잦은 코드를 분리하여 시스템의 복잡성을 감춰야 하는데 귀찮다 ...그냥 귀찮다 !!!

Page 6: Reflection

REFLECTIONARCHITECTURE PATTERN

Solution : 동적으로 오브젝트가 스스로 구조와 동작을 알아서 할 수 있도록 한다 .

Page 7: Reflection

REFLECTIONARCHITECTURE PATTERN

메타 오브젝트 : 기본 레벨의 구조 ,동작 , 상태 중 한 측면 (Aspect) 를 선택해 그 정보를 캡슐화 ( 은닉 ) 한다 .

메타레벨 : 오브젝트의 구조와 동작에 대해 자체 설명 (Self Representation) 제공 .

기본 레벨 : 메타 객체를 이용하여 동작 로직을 정의 한다 .

Page 8: Reflection

REFLECTIONARCHITECTURE PATTERN

Structure

Page 9: Reflection

REFLECTIONARCHITECTURE PATTERN

Dynamic : Base Level 과 Meta-Level 동작 예

Page 10: Reflection

REFLECTIONARCHITECTURE PATTERN

Dynamic :Metaobject Protocol 동작 예

Page 11: Reflection

REFLECTIONARCHITECTURE PATTERN

implementation Application 의 모델을 정의 한다 .변경 되는 동작 정의 .변경 되지 않는 동작 정의 .변경 되거나 되지 않는 동작의 구조적 제약에 상관없는 시스템 서비스 정의 .Meta Object 정의 .Meta Object Protocol 정의 .기본 레벨 정의 .

Page 12: Reflection

REFLECTIONARCHITECTURE PATTERN

장 /단점변경이 쉽다 .다양한 종류의 변경을 지원한다 .

메타레벨에 수정을 가할 경우 문제가 발생할 수 있다 .속도가 느려진다 . (C++ virtual table).잠재적인 모든 변화를 지원할 수 없다 .모든 언어가 Reflection 을 완벽히 지원하지 않는다 .(C++ 는 타입식별만 지원 )

Page 13: Reflection

REFLECTIONARCHITECTURE PATTERN

참고 자료http://www.vollmann.com/pubs/meta/meta/meta.htmlhttp://www.garret.ru/cppreflection/docs/reflect.html#introduction