设计模式(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.调用
代码下载
分享到:
相关推荐
享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 行为型: 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. ...
设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern C#设计模式(10)-Adapter Pattern C#设计模式(9)-Prototype ...
11. 享元模式(Flyweight Pattern):使用共享技术来最小化对象的存储空间,避免大量相同对象的创建。 12. 代理模式(Proxy Pattern):为其他对象提供一个代理,以控制对这个对象的访问。 13. 模板方法模式...
适配器模式(Adapter Pattern) 提供者模式(Provider Pattern) 外观模式(Facade Pattern) 享元模式(Flyweight Pattern) 原型模式(Prototype Pattern) 责任链模式(Chain of Responsibility Pattern) 中介者模式...
11. 享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 行为型 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern...
通过阅读GOF23种设计模式.docx文档和探索DesignPattern项目中的代码,你可以深入理解每种模式的用途、优点以及如何在C#和.NET Core环境中实现它们。对于想要提升编程技能和代码质量的开发者来说,这是一个宝贵的资源...
4. **结构型模式**:如适配器模式(Adapter)、装饰器模式(Decorator)、代理模式(Proxy)、桥接模式(Bridge)、组合模式(Composite)、外观模式(Facade)和享元模式(Flyweight),这些模式关注如何组织类和...
享元模式(Flyweight Pattern) 享元模式用于减少创建大量相似对象时所需的内存消耗。这种模式非常适合于需要创建大量细粒度对象的情况。在C#中,可以通过使用池来管理对象来实现享元模式。 #### 12. 代理模式...
享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 行为型: 16. 观察者...
11. 享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。在C#中,通过共享对象实例来减少内存占用。 12. 组合模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。在C#中,可以使用虚拟...
12. 享元模式(Flyweight Pattern):在不影响功能的情况下,减少对象的创建,以节约内存资源。 13. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。 14. 责任链模式(Chain of ...
11. 享元模式(Flyweight Pattern) 12. 代理模式(Proxy Pattern) 13. 模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 行为型: 16. 观察者模式(Observer Pattern)...
4. **享元模式(Flyweight Pattern)**: 享元模式是一种结构型设计模式,通过共享大量细粒度对象来减少内存消耗。在C#中,享元模式适用于那些创建大量相似对象但大部分属性都相同的场景,通过共享内存来节省资源。...
11. 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。在C#中,享元模式通常涉及到对象池和内存管理。 12. 模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,而将一些...
### C# 3.0 设计模式概览 #### C# 遇见设计模式 在《C# 3.0 设计模式》一书中,作者Judith Bishop深入探讨了如何将经典的设计模式应用于C# 3.0编程语言中。这本书不仅适合那些对设计模式有所了解的开发者,也适合...
代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory ...)、享元模式(Flyweight Pattern)、备忘录模式(Memento Pattern)等...
- 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。享元模式是一种结构型模式,主要目的是减少程序中对象的数量以节省内存。 - 代理模式(Proxy Pattern):为其他对象提供一种代理以...