本站不再更新,歡迎光臨 java開(kāi)發(fā)技術(shù)網(wǎng)
          隨筆-230  評(píng)論-230  文章-8  trackbacks-0

          Flyweight的定義:
          ?? 避免大量擁有相同內(nèi)容的小類開(kāi)銷(xiāo)(如消耗內(nèi)存),使大家共享一個(gè)類叫元類。
          為什么使用:
          ???? 面向?qū)堑脑瓌t是一切都是對(duì)象,但如果對(duì)象數(shù)非常龐大,如果字處理軟件,對(duì)數(shù)據(jù)表的DAO操作。等耗內(nèi)存的操作,我們就要求同存異,找出共同體,設(shè)計(jì)為一個(gè)元類。另外一些特性取決于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("測(cè)試");
          ??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) 評(píng)論(0)  編輯  收藏 所屬分類: Patterns
          本站不再更新,歡迎光臨 java開(kāi)發(fā)技術(shù)網(wǎng)
          主站蜘蛛池模板: 兴宁市| 湖北省| 瑞丽市| 晋江市| 金阳县| 榆树市| 鄂尔多斯市| 江孜县| 寿宁县| 仁寿县| 麻栗坡县| 高陵县| 元谋县| 来宾市| 长武县| 吴川市| 饶河县| 清河县| 汉源县| 黄浦区| 达日县| 若羌县| 临湘市| 库伦旗| 西安市| 客服| 安多县| 沈阳市| 利川市| 时尚| 响水县| 垫江县| 靖远县| 麻城市| 永平县| 潼关县| 德钦县| 镇巴县| 陆川县| 怀集县| 青阳县|