zoukankan      html  css  js  c++  java
  • 设计模式 之 享元模式

    和String达到一样的目的,节省空间

    package com.test.pattern.flyweight;
    
    import java.util.Hashtable;
    
    abstract class Flyweight {
        public abstract void operation();
    }
    
    class ConcreteFlyweight extends Flyweight {
        
        private String str;
        public ConcreteFlyweight(String str) {
            this.str=str;
        }
        @Override
        public void operation() {
            System.out.println("Concrete---Flyweight: "+str);
        }
    }
    
    //再定义一个工厂方法类
    class FlyweightFactory {
        private Hashtable flyweights = new Hashtable();
        public Flyweight getFlyweight(Object obj) {
            Flyweight flyweight = (Flyweight)flyweights.get(obj);
            if(flyweight == null) {
                flyweight = new ConcreteFlyweight((String) obj);
                flyweights.put(obj, flyweight);
            }
            return flyweight;
        }
        public int getFlyweightSize() {
            return flyweights.size();
        }
    }
    public class FlyweightTest {
        FlyweightFactory factory = new FlyweightFactory();
        Flyweight fly1,fly2,fly3,fly4,fly5;
        public static void main(String[] args) {
            System.out.println("The Flyweight Pattern");
            FlyweightTest test = new FlyweightTest();
            test.showFlyweight();
        }
        public FlyweightTest() {
            fly1 = factory.getFlyweight("Google");
            fly2 = factory.getFlyweight("Qutr");
            fly3 = factory.getFlyweight("Google");
            fly4 = factory.getFlyweight("Google");
            fly5 = factory.getFlyweight("Google");
        }
        public void showFlyweight() {
            fly1.operation();
            fly2.operation();
            fly3.operation();
            fly4.operation();
            fly5.operation();
            int objSize = factory.getFlyweightSize();
            System.out.println("objSize = " + objSize);
        }
    }
  • 相关阅读:
    yii中设置提示成功信息,错误提示信息,警告信息
    关于京东评价数目,淘宝评价数目延迟加载
    关于yii的relations
    关于yii验证和yii错误处理
    jquery资源网站
    Facybox弹出层效果
    YII适合做后台的一个扩展
    Yii: 参数检查和错误的集中处理技巧
    Asp.net 备份、还原Ms SQLServer及压缩Access数据库
    天诺网
  • 原文地址:https://www.cnblogs.com/heben/p/5784557.html
Copyright © 2011-2022 走看看