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
  • 相关阅读:
    Android 监听键盘的弹起与收缩
    Android Glide+CircleImageView实现加载圆形图片列表
    Java 集合
    Java 文件IO续
    Java 文件IO
    Java 网络编程
    Android AIDL Service
    Android 四大组件之Service
    Android 开源项目分类汇总(转)
    Android SQLite数据库
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5286992.html
Copyright © 2011-2022 走看看