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

    享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。

    namespace FlyDesign
    {
        public abstract class Flyweight
        {
            public abstract void Operation(int extrinsicstate);
        }
        public class ConcreteFlyweight : Flyweight
        {
            public override void Operation(int extrinsicstate)
            {
                Console.WriteLine("具体Flyweight:" + extrinsicstate);
            }
        }
        public class UnsharedConcretFlyweight : Flyweight
        {
            public override void Operation(int extrinsicstate)
            {
                Console.WriteLine("不共享的具体Flyweight:" + extrinsicstate);
            }
        }
        public class FlyweightFactory
        {
            private Hashtable flyweights = new Hashtable();
            public FlyweightFactory()
            {
                flyweights.Add("X", new ConcreteFlyweight());
                flyweights.Add("Y", new ConcreteFlyweight());
                flyweights.Add("Z", new ConcreteFlyweight());
            }
            public Flyweight GetFlyweight(string key)
            {
                return (Flyweight)flyweights[key];
            }
        }
    }
    View Code

    测试代码:

                int extrinsicstate = 22;
                FlyweightFactory f = new FlyweightFactory();
                Flyweight fx = f.GetFlyweight("X");
                fx.Operation(--extrinsicstate);
                Flyweight fy = f.GetFlyweight("Y");
                fy.Operation(--extrinsicstate);
                Flyweight fz = f.GetFlyweight("Z");
                fz.Operation(--extrinsicstate);
                Flyweight uf = new UnsharedConcretFlyweight();
                uf.Operation(--extrinsicstate);
    View Code
  • 相关阅读:
    样式的使用
    样式的使用
    jqurey基础一
    jQuery三天复习.md
    webstorm快捷键大全
    计算机的进制与编码
    2016-4-29HTML标记的使用
    HTML的基本概况
    Apache Maven 入门篇 ( 上 )
    ehcache.xml 分布试缓存
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5286992.html
Copyright © 2011-2022 走看看