|
[출처] http://younghoe.info/170 1. 컨텍스트 효율을 높이기 위해서 다수의 작은 객체를 공유하는 것이다. 객체 지향 소프트웨어는 객체의 생성과 파괴라는 기본적인 주기에 따라 CPU 주기의 낭비, 가비지 컬렉션(garbage collection) 및 메모리 할당에 걸쳐 부하를 유발한다. 시스템이 이들 객체를 공유하게 된다면 부하를 피할 수 있다. 그러나, 특정 객체의 현재 사용자에게 국한된 정보는 공유할 수가 없다. Flyweight 패턴은 이러한 상태 정보를 객체의 재사용할 수 있는 부분과 분리시키는 접근 방법을 취한 것이다. 본질적인(intrinsic) 상태와 외래(extrinsic) 상태를 구분하는 것이 Flyweight 패턴의 핵심 개념이다. 본질적인 상태는 Flyweight 객체에 저장되어 있다. 이들 상태는 Flyweight의 컨텍스트에 독립적인 정보로 이루어지며, 공유가 가능하다. 외래 상태는 Flyweight의 컨텍스트에 따라 매우 다양하며, 공유가 불가능하다. 클라이언트 객체가 외래 정보를 요구할 때 이를 Flyweight에 전달할 의무를 지닌다. 2. 적용 영역 l 어플리케이션이 다수의 객체를 이용하는 경우 l 다수의 객체로 인해 저장에 고비용이 소요되는 경우 l 객체의 대부분의 상태 정보가 외래 상태(extrinsic state)화 할 수 있는 경우 l 외래 상태가 제거되는 경우 다수의 객체가 상대적으로 적은 숫자의 공유 객체로 대치될 수 있는 경우 l 어플리케이션이 객체의 식별자에 의존하지 않은 경우 3. 구조 4. 적용 결과 l 외래 상태를 전송하고, 찾아내는 과정에서 실행 시점의 비용(costs)을 초래할 수 있다. 이는 저장공간의 절약과 상충관계를 갖는다. l 저장공간 절약은 다음 몇 가지 요인과 상관관계를 갖는다. 5. 관련 패턴 l Flyweight 패턴은 종종 Composite 패턴과 결합되어 Leaf 노드를 공유하는 논리적인 그래프 구조를 구현한다. l State와 Strategy 객체를 Flyweight로 구현하는 것은 종종 최선책이 되기도 한다.
|
메모장
이글루 파인더
카테고리
전체
Agile Methodology Design Patterns JAVA Frameworks Open API DB관련 개발Tool System Web Server HTML/SCRIPT Talk Talk My Life 생활의 발견 허슬 두산! Fun Fun!!! 즐겨찾기 준비중 방명록 최근 등록된 덧글
우하하-_-' 유용해서 ..
by 미나 at 11/20 함께 생각하고 행동할 수.. by 강민철 at 10/21 신입개발자 인데 미흡한.. by seo at 10/13 유용한 정보 감사합니다.. by Nerv\\\'s at 09/23 저도 좋은글 담아갑니다.. by 풍 at 09/18 ㅎㅎㅎㅎ 저는 지금 개.. by 이종화 at 08/19 디자인패턴 공부하려는데.. by 이현승 at 07/22 좋은 글 잘 봤습니다. .. by 김진학 at 06/29 좋은글 감사합니다. 유.. by 엄성권 at 03/11 좋은 글 보고 갑니다. 제.. by 우기 at 01/10 최근 등록된 트랙백
Soma buy soma chea..
by Watson soma cheap. Buy soma online. by Buying cheap soma f.. Retin a. by Retin a and lip rhytid.. joinc wiki::소프트웨어.. by yundream의 프로그래.. 내 손안의 PC - 자바가 .. by 上善若水 저도 agile에 관심이 많.. by lovelove님의 이글루 JUnit 4로 뛰어들기 by 고안해 내는 재능 inheritnace vs dele.. by Bullshit Life framework = framewor.. by 고안해 내는 재능 Struts iBATIS Spring by 고안해 내는 재능 포토로그
이전블로그
이글루링크
라이프로그
| |||