设计模式理解结构型——享元(Flyweight)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式理解结构型——享元(Flyweight)相关的知识,希望对你有一定的参考价值。

最后一个结构型,享元。没有太多的项目经验,对这种模式只有一种概念上的理解,就是为了节约内存等资源,把可重用的东西只申请一次,然后处处调用,同时用Hash进行管理。

    直接上图:

 技术分享

代码:

/*********  大话设计模式上的代码 ************/

abstract class Flyweight{
    public abstract void Operation(int extrinsicstate); 
}

class ConcreteFlyweight : Flyweight{
    public override void Operation(int extrinsicstate){
        Console.WriteLine("具体Flyweight : " + extrinsicstate);
    }
}

class UnshareConcreteFlyweight : Flyweight{
    public override void Operation(int extrinsicstate){
        Console.WriteLine("不共享的具体Flyweight : " + extrinsicstate);
    }
}

class FlyweightFactory{
    private Hashtable flyweights = new Hashtable();
    public FlyweightFactory(){
        flyweights.add("X",new ConcreteFlyweight());
        flyweights.add("Y",new ConcreteFlyweight());
    }
    public Flyweight GetFlyweight(string key){
        return ((Flyweight)flyweights[key]);
    }
}

 

以上是关于设计模式理解结构型——享元(Flyweight)的主要内容,如果未能解决你的问题,请参考以下文章

Flyweight 享元(结构型)

Flyweight(享元)--对象结构型模式

享元模式---Flyweight

享元模式--Flyweight

Flyweight享元模式(结构型模式)

编程思想设计模式结构模式Structural享元模式flyweight