Evolving Framework
해당글의 내용은 개인적인 해석이므로 원문을 읽어보자…
(http://st-www.cs.uiuc.edu/users/droberts/evolve.html)
#. Framework을 발전시키는 9가지 패턴
1. Three Example
- Framework의 개발을 시작하려 할 때…
- Application을 3번 만드는데… 첫번째는 고객으로 부터 요구분석을 잘해서 개발하고,
2번째는 Whitebox, 3번째는 BlackBox가 됨. 3개의 프로젝트를 같은사람이 연이어서 수행 해야함
2. Whitebox Framework
- 2번째 Application을 만들 때…
- Inheritance와 Composition을 적절히 조합해서 사용(변하는 부분은 상속받도록 구현한다.)
3. Component Library
- Whitebox Framework으로 Application을 만들 때 유사한 Object를 Framework에서 instance생성하는 중복을 막을 때
- 자주 사용하는 Concrete Class들을 취합하여 Component Library에 추가하라.
4. Hot Spots
- Component Library에 추가 시 유사한 중복된 코드가 발견될 때
- 다음의 패턴을을 이용해 캡슐화하고 모음
What varies |
Design Pattern |
Algorithms |
Strategy, Visitor |
Actions |
Command |
Implementations |
Bridge |
Response to change |
Observer |
Interactions between objects |
Mediator |
Object being created |
Factory Method, Abstract Factory, Prototype |
Structure being created |
Builder |
Traversal Algorithm |
Iterator |
Object interfaces |
Adapter |
Object behavior |
Decorator, State |
5. Pluaggable Object
- Component Library에 Component추가 시 작성하는 subclass대부분이 조금씩 다른경우
- refactoring의 parameter Object와 같이 모델을 사용해서 레퍼런스를 넘겨라…
6. Fine-Grained Object
- Component Library의 재 사용성을 얼마나 작은 객체로 나누어야 할지?
- 여러 개의 Behavior를 캡슐화한 클래스가 만들어진 것이 있으면 사용하고 없으면 생성하면서 관리하라.
7. BlackBox Framework
- 상속관계의 강결합에 유연성이 떨어지는 문제를 어떻게 해결할 것인가…
- Composition을 사용해서 유용성있게 사용해라.
8. Visual Builder
9. Language Tools
ㅇ. 출처 및 관련사항들
Ralph Johnson의 원문 : http://st-www.cs.uiuc.edu/users/droberts/evolve.html
관련 URL : http://fdg.springnote.com/pages/1618620
관련 ppt파일이 있는 URL : http://fdg.springnote.com/pages/2090206