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
  • 相关阅读:
    C#小型资源管理器
    C#换肤LrisSkin
    面向对象的24种设计模式
    七大设计原则
    非泛型集合和泛型集合
    C#经理评价系统
    深入C#.NET框架
    C#窗口航空总结
    java基础数据结构和语法
    HTML
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5286992.html
Copyright © 2011-2022 走看看