| Summary: Patterns:Flyweight |
| Author: jsakalos (번역 : Rhio.Kim) |
| Published: |
| Ext Version: 1.1 |
Languages: English Korean
|
Definition효율적으로 많은 오브젝트들의 공유하는 것을 제공하기 위해 사용하라.
Used in Ext
DiscussionN.B jsakalo의 포럼에 기재한 Flyweight pattern 글을 직접 옮겨왔다.
Ext.Element는 수 많은 기능 예를 들어 숨김, 표시, 모든 에니메이션 기능, 치수 획득 및 설정 기능과 그 이상의 것들로 DOM 엘리먼트/노드를 감싸 놓았다.
Ext.Element 는 DOM 엘리먼트에 레퍼런스를 유지하고 dom 프로퍼티에 감싸진다. 한번에 여러분은 Ext.Element를 가진다. (예를 들어 Ext.get(‘some-id’)를 호출) 그것은 Element클래스의 인스턴스이고 이것으로 위에 말한 것처럼 동작할 수 있다.
지금, 여러분이 1000개의 DOM 노드를 숨기기 위해 1000개의 Element 인스턴스를 생성하여 1000번 Ext.get(‘some-one-of-1000-id).hide()를 호출해서 1개의 hide 함수를 호출하는 것을 상상해보세요.
Ext.fly는 Ext.Element의 기능이 감싸진 “변경 되어질 수 있는” DOM 노드를 갖는 Ext.Element의 단일 인스턴스이다. 만약 여러분이 Ext.fly(‘some-one-of-1000-id’).hide()를 1000번 호출한다면 여러분은 Ext.Element의 하나의 인스턴스의 dom 프로퍼티를 1000번 대체한다.
결과: 더욱더 높은 성능과, 낮은 메모리 사용.
한가지 염두 해야 할 것은 dom은 조만간 다른것에 의해 대체될 것이라서 나중에 사용하기 위해 Ext.fly를 통해 반환되어진 Element를 유지할 수 없다는 것입니다.
위키 피디아 참고자료 : Flyweight Pattern