`
cloudtech
  • 浏览: 4711132 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

设计模式(C#)之享元模式(Flyweight Pattern)

 
阅读更多

设计模式(C#)之享元模式(Flyweight Pattern)

代码下载

1.概念

运用共享技术有效地支持大量细粒度的对象。

2.类图

Model.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FlyweightPattern
{
    public class Model
    {
        public double D1
        {
            get;
            set;
        }

        public double D2
        {
            get;
            set;
        }
    }
}


AbstractSum.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FlyweightPattern
{
    public abstract class AbstractSum
    {
        public abstract double Sum(Model md);
       
    }
}


Sum1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FlyweightPattern
{
    public class Sum1 : AbstractSum
    {
        public override double Sum(Model md)
        {
            return md.D1 + md.D2;
        }
    }
}


Sum2.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FlyweightPattern
{
    public class Sum2 : AbstractSum
    {
        public override double Sum(Model md)
        {
            return md.D1 * md.D2;
        }
    }
}


FlyweightUse.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FlyweightPattern
{
    public class FlyweightUse
    {
       
        private Dictionary<string, AbstractSum> _sumObjects = new Dictionary<string, AbstractSum>();
        public AbstractSum GetSumObject(string key)
        {
            AbstractSum SumObject = null;

            if (_sumObjects.ContainsKey(key))
            {
                SumObject = _sumObjects[key];
            }
            else
            {
                switch (key)
                {
                    case "Sum1": SumObject = new Sum1(); break;
                    case "Sum2": SumObject = new Sum2(); break;
                }

                _sumObjects.Add(key, SumObject);
            }

            return SumObject;
        }

    }
}


3.调用

代码下载

分享到:
评论

相关推荐

    C#设计模式_设计模式_C#_

    享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 行为型: 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. ...

    C#设计模式-吕震宇

    设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern C#设计模式(10)-Adapter Pattern C#设计模式(9)-Prototype ...

    C#23种设计模式【完整】.pdf

    11. 享元模式(Flyweight Pattern):使用共享技术来最小化对象的存储空间,避免大量相同对象的创建。 12. 代理模式(Proxy Pattern):为其他对象提供一个代理,以控制对这个对象的访问。 13. 模板方法模式...

    C#版 24种设计模式

    适配器模式(Adapter Pattern) 提供者模式(Provider Pattern) 外观模式(Facade Pattern) 享元模式(Flyweight Pattern) 原型模式(Prototype Pattern) 责任链模式(Chain of Responsibility Pattern) 中介者模式...

    设计模式代码——c#

    11. 享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 行为型 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern...

    GOF之23种设计模式的C#实现:DesignPattern.zip

    通过阅读GOF23种设计模式.docx文档和探索DesignPattern项目中的代码,你可以深入理解每种模式的用途、优点以及如何在C#和.NET Core环境中实现它们。对于想要提升编程技能和代码质量的开发者来说,这是一个宝贵的资源...

    C#语言讲解的设计模式好书

    4. **结构型模式**:如适配器模式(Adapter)、装饰器模式(Decorator)、代理模式(Proxy)、桥接模式(Bridge)、组合模式(Composite)、外观模式(Facade)和享元模式(Flyweight),这些模式关注如何组织类和...

    C#设计模式(23种设计模式)

    享元模式(Flyweight Pattern) 享元模式用于减少创建大量相似对象时所需的内存消耗。这种模式非常适合于需要创建大量细粒度对象的情况。在C#中,可以通过使用池来管理对象来实现享元模式。 #### 12. 代理模式...

    32种设计模式

    享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 行为型: 16. 观察者...

    C#23种设计模式【完整】(测试可用)

    11. 享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。在C#中,通过共享对象实例来减少内存占用。 12. 组合模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。在C#中,可以使用虚拟...

    C#23种设计模式【完整】(亲测可用)

    12. 享元模式(Flyweight Pattern):在不影响功能的情况下,减少对象的创建,以节约内存资源。 13. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。 14. 责任链模式(Chain of ...

    C#23种设计模式

    11. 享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 行为型: 16. 观察者模式(Observer Pattern)...

    C#设计模式视频11-15

    4. **享元模式(Flyweight Pattern)**: 享元模式是一种结构型设计模式,通过共享大量细粒度对象来减少内存消耗。在C#中,享元模式适用于那些创建大量相似对象但大部分属性都相同的场景,通过共享内存来节省资源。...

    C#设计模式随书源码

    11. 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。在C#中,享元模式通常涉及到对象池和内存管理。 12. 模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,而将一些...

    C#3.0设计模式.pdf

    ### C# 3.0 设计模式概览 #### C# 遇见设计模式 在《C# 3.0 设计模式》一书中,作者Judith Bishop深入探讨了如何将经典的设计模式应用于C# 3.0编程语言中。这本书不仅适合那些对设计模式有所了解的开发者,也适合...

    java设计模式---诙谐易懂版

    代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory ...)、享元模式(Flyweight Pattern)、备忘录模式(Memento Pattern)等...

    新版设计模式手册[C#].pdf

    - 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。享元模式是一种结构型模式,主要目的是减少程序中对象的数量以节省内存。 - 代理模式(Proxy Pattern):为其他对象提供一种代理以...

Global site tag (gtag.js) - Google Analytics