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

         具体就是在工厂中保存对象的引用,通过共享对象来减少内存的开销.对象之间的差异使用外部对象来处理.

    class Program
        {
            /// <summary>
            /// 享元模式例子
            /// </summary>
            /// <param name="args"></param>
            static void Main(string[] args)
            {
                FlyWeightFactory factory = new FlyWeightFactory();
                var whiteChessman = factory.GetChessman("");
                var blockCheeman = factory.GetChessman("");
                whiteChessman.Use(new ChessmanPostion() { X = 1, Y = 4 });
                blockCheeman.Use(new ChessmanPostion() { X = 1, Y = 2 });
                Console.Read();
            }
        }
        /// <summary>
        /// 享元工厂(这里可将工厂设置为静态)
        /// </summary>
        public class FlyWeightFactory
        {
            Dictionary<string, Chessman> _dicChessMan = new Dictionary<string, Chessman>();
            public FlyWeightFactory()
            {
                _dicChessMan.Add("", new Chessman() { Color = "" });
                _dicChessMan.Add("", new Chessman() { Color = "" });
            }
            public Chessman GetChessman(string key)
            {
                return _dicChessMan[key];
            }
        }
    
        public interface IFlyWeight
        {
            void Use(ChessmanPostion chessmanPostion);
        }
        /// <summary>
        /// 棋子
        /// </summary>
        public class Chessman : IFlyWeight
        {
    
            public string Color { get; set; }
            public void Use(ChessmanPostion chessmanPostion)
            {
                Console.WriteLine($"{Color}  X:{chessmanPostion.X}  Y:{chessmanPostion.Y}");
            }
        }
        /// <summary>
        /// 棋子位置(在这里棋子是外部状态)
        /// </summary>
        public class ChessmanPostion
        {
            public int X;
            public int Y;
    
        }

  • 相关阅读:
    Nginx安装及配置
    nginx主(子)配置文件参考
    harbor私有仓库部署
    k8s内网安装部署(二)
    k8s部署之系统初始化(一)
    redis部署安装【建议收藏】
    nginx优化【收藏篇】
    nginx之用户验证配置(实操)
    nginx反向代理和负载均衡《实战》
    nginx安装
  • 原文地址:https://www.cnblogs.com/student-note/p/12469241.html
Copyright © 2011-2022 走看看