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
  • 相关阅读:
    Spring Boot 是什么?
    python学习笔记
    csu oj 1344: Special Judge
    csu oj 1343 Long Long
    csu oj 1342: Double
    csu oj 1341 string and arrays
    机器学习之——认识机器学习
    CSU OJ 1340 A Sample Problem
    java logback 正则过滤
    java vm (二) 之 虚拟机启动对类的操作
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5286992.html
Copyright © 2011-2022 走看看