设计模式之Flyweight模式(笔记)

原创 2015年07月07日 10:41:19

享元模式:运用共享技术有效地支持大量细粒度的对象。
适用场合:如果一个应用程序适用了大量的对象,而大量的这些对象造成了很大的存储开销时就应该考虑使用。
这里写图片描述

首先定义一个IFlyweight接口

public interface IFlyweight {

    public void operation(int extrinsicstate);
}

接着定义一个ConcreteFlyweight继承IFlyweight

public class ConcreteFlyweight implements IFlyweight{

    @Override
    public void operation(int extrinsicstate) {

        System.out.println("具体flyweight:"+extrinsicstate);

    }

}

再定义一个UnsharedConcreteFlyweight继承IFlyweight

public class UnsharedConcreteFlyweight implements IFlyweight{

    @Override
    public void operation(int extrinsicstate) {

        System.out.println("不共享的具体flyweight:"+extrinsicstate);

    }
}

然后定义一个FlyweightFactory

public class FlyweightFactory {

    Map<String, IFlyweight> flyweights=new HashMap<String,IFlyweight>();

    public FlyweightFactory(){
        flyweights.put("x", new ConcreteFlyweight());
        flyweights.put("y", new ConcreteFlyweight());
        flyweights.put("z", new ConcreteFlyweight());
    }

    public IFlyweight getFlyweight(String key){
        return flyweights.get(key);
    }
}

客户端代码

public static void main(String[] args) {
        //享元模式
        int extrinsicstate=22;
        FlyweightFactory factory=new FlyweightFactory();

        IFlyweight fx=factory.getFlyweight("x");
        fx.operation(--extrinsicstate);

        IFlyweight fy=factory.getFlyweight("y");
        fy.operation(--extrinsicstate);

        IFlyweight fz=factory.getFlyweight("z");
        fz.operation(--extrinsicstate);

        IFlyweight uf=new UnsharedConcreteFlyweight();
        uf.operation(--extrinsicstate);
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

设计模式笔记(7 FLYWEIGHT & PROXY)

设计模式笔记(7 FLYWEIGHT & PROXY) FLYWEIGHT(享元) 意图: 运用共享技术有效地支持大量细粒度的对象。 适用性: 1.一个程序应用了大量的对象,...

设计模式读书笔记:Flyweight(享元)

意图: 运用共享技术有效地支持大量细粒度的对象。

笔记:Gof设计模式--Flyweight

1、意图 Use sharing to support large numbers of fine-grained objects efficiently.   2、适应性 The Flywe...

C#设计模式之Flyweight

  • 2008-08-19 12:01
  • 15KB
  • 下载

设计模式学习笔记--享元(Flyweight)模式

享元模式以共享的方式高效地支持大量的细粒度对象。享元模式分为单纯享元模式和复合享元模式。享元模式不是一种常用的模式,我个人不曾记得哪个项目真正使用过享元模式。

设计模式 笔记 享元模式 Flyweight

//---------------------------15/04/20---------------------------- //Flyweight 享元模式---...

设计模式(c++)笔记之十(Flyweight模式)

一、描述       设计模式中的享元模式,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 问题       在面向对象系统的设计何实现中,创建对象是最为常见的...

设计模式笔记19:享元模式(Flyweight Pattern)

一、享元模式的内容 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享...

设计模式学习笔记之Flyweight模式(享元模式)

GOF:运用共享技术有效地支持大量细粒度的对象。   解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说(这里引用GOF书中的例...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)