本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0

          Flyweight的定義:
          ?? 避免大量擁有相同內容的小類開銷(如消耗內存),使大家共享一個類叫元類。
          為什么使用:
          ???? 面向對角的原則是一切都是對象,但如果對象數非常龐大,如果字處理軟件,對數據表的DAO操作。等耗內存的操作,我們就要求同存異,找出共同體,設計為一個元類。另外一些特性取決于context是不可共享的。

          使用例子如:
          package com.pdw.pattern;

          import java.util.*;

          class CD{
          ?private String title;
          ?private int year;
          ?private Artist artist;
          ?
          ?
          ?public Artist getArtist() {
          ??return artist;
          ?}
          ?public void setArtist(Artist artist) {
          ??this.artist = artist;
          ?}
          ?public String getTitle() {
          ??return title;
          ?}
          ?public void setTitle(String title) {
          ??this.title = title;
          ?}
          ?public int getYear() {
          ??return year;
          ?}
          ?public void setYear(int year) {
          ??this.year = year;
          ?}
          ?
          ?
          }
          class Artist{
          ?private String name;
          ?public String getName(){
          ??return this.name;
          ?}
          ?public Artist(String n){
          ??this.name=n;
          ?}
          ?
          }
          class ArtistFactory{
          ?
          ?Hashtable flyweights=new Hashtable();
          ?Artist getArtist(String key){
          ??Artist result;
          ??result=(Artist)flyweights.get(key);
          ??if(result==null){
          ???result=new Artist(key);
          ???flyweights.put(key,result);
          ??}
          ??return result;
          ?}

          }

          public class FlyweightImpl {

          ?/**
          ? * @param args
          ? */
          ?public static void main(String[] args) {
          ??CD cd=new CD();
          ??ArtistFactory af=new ArtistFactory();
          ??cd.setArtist(new Artist("李"));
          ??cd.setTitle("測試");
          ??cd.setYear(1998);
          ??Artist va=af.getArtist("裴");
          ??System.out.println(va.getName());
          ??af.getArtist("李");
          ??
          ??System.out.println(af.flyweights.size());
          ?}

          }

          posted on 2006-07-09 22:50 有貓相伴的日子 閱讀(344) 評論(0)  編輯  收藏 所屬分類: Patterns
          本站不再更新,歡迎光臨 java開發技術網
          主站蜘蛛池模板: 藁城市| 陆良县| 广饶县| 定安县| 嘉鱼县| 凤阳县| 称多县| 灌云县| 南宁市| 车险| 方正县| 大姚县| 阿克苏市| 平度市| 沅陵县| 赫章县| 金昌市| 金阳县| 灵武市| 隆安县| 广饶县| 平陆县| 隆子县| 壤塘县| 莱阳市| 棋牌| 大英县| 盐边县| 搜索| 新野县| 乡宁县| 南溪县| 镇坪县| 万载县| 瑞丽市| 富蕴县| 桓台县| 株洲县| 柞水县| 屏东县| 武强县|