您的位置:首页 > 科技 > IT业 > 设计模式-享元模式

设计模式-享元模式

2024/12/27 22:01:43 来源:https://blog.csdn.net/qq_58870988/article/details/141167924  浏览:    关键词:设计模式-享元模式

概述

享元模式是一种结构类型的设计模式,目的是在创建对象的时候,使用已有的对象代替新的对象的创建,减少内存的消耗提升性能。主要有,享元接口,享元类和享元工厂组成,通过享元工厂管理对应类的创建,而不是直接创建新的对象,然后再使用对应的类,这个共用的思想也类似于对象池的概念


需求:创建三个角色,法师战士刺客,每个都有自己的行为,当创建重复的角色的时候,可以复用对象。

享元模式

internal class Program
{private static void Main(string[] args){var factory = new Factory();var FS = factory.GetCharacter("法师");var ZS = factory.GetCharacter("战士");var CK = factory.GetCharacter("刺客");FS.Behavior("法术");ZS.Behavior("攻击");CK.Behavior("刺杀");var CK1 = factory.GetCharacter("法师");CK1.Behavior("法术");}public interface ICharacter//角色接口{void Behavior(string _Behavior);}public class Character : ICharacter//角色{private string Name;public Character(string name){Name = name;}public void Behavior(string _Behavior){Console.WriteLine($"角色{Name}执行{_Behavior}!");}}public class Factory//享元工厂{private Dictionary<string, ICharacter> keyValuePairs = new Dictionary<string, ICharacter>();public ICharacter GetCharacter(string name)//获取角色,如果没有就创建,有就返回已有的{if (!keyValuePairs.ContainsKey(name)){keyValuePairs[name] = new Character(name);}else{Console.WriteLine($"使用了已存在的元素{name}");}return keyValuePairs[name];}}
}

输出:

角色法师执行法术!
角色战士执行攻击!
角色刺客执行刺杀!
使用了已存在的元素法师
角色法师执行法术!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com