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

news/2024/11/19 16:58:34/

前言

享元模式通过共享对象来减少内存使用和提高性能。

代码

public abstract class Flyweight
{public abstract void Control();
}public class ComputerFlyweight : Flyweight
{private string _operator;public ComputerFlyweight(string name){_operator = name;}public override void Control(){Console.WriteLine($"current computer operator is :{_operator}");}
}public class FlyweightFactory
{private Dictionary<string, Flyweight> flyweights = new Dictionary<string, Flyweight>();public Flyweight GetFlyweight(string key){if (flyweights.ContainsKey(key)){return flyweights[key];}else{Flyweight flyweight = new ComputerFlyweight(key);flyweights.Add(key,flyweight);return flyweight;}}
}/** 结构型模式:Structural Pattern* 享元模式:Flyweight Pattern*/internal class Program{static void Main(string[] args){FlyweightFactory factory = new FlyweightFactory();Flyweight  userA = factory.GetFlyweight("UserA");userA.Control();Flyweight userB = factory.GetFlyweight("UserB");userB.Control();Flyweight userC = factory.GetFlyweight("UserA");userC.Control();Console.ReadLine();}}

运行结果

在这里插入图片描述


http://www.ppmy.cn/news/1548275.html

相关文章

第十六届蓝桥杯模拟赛(第一期)-c++/c

前面填空参考https://blog.csdn.net/2301_76891851/article/details/143448411 后面大题code&#xff1a; 停车场停车 #include <bits/stdc.h> #define int long long using namespace std; int tmp; signed main() {int n;cin>>n;if(n<15)cout<<"…

威胁驱动的网络安全方法论

摘要 目前的网络安全风险管理实践很大程度上是由合规性要求驱动的&#xff0c;这使得公司/组织不得不在安全控制和漏洞上投入人力/物力。&#xff08;风险管理涉及多个方面&#xff0c;包括资产、威胁、漏洞和控制&#xff0c;并根据事故发生的可能性及造成的影响进行评估。威…

dnaMethyAge包学习笔记

1.introduction 许多对甲基化年龄进行计算的文章都是采用网站实现计算的&#xff0c;能够实现对甲基化年龄的计算的R包相对比较少&#xff0c;其中应用最广的是dnaMethyAge包。作者本想寻找能够计算Grimage和Grimage2的R包&#xff0c;奈何没有寻找到&#xff0c;因此只能记录一…

css uniapp背景图宽度固定高度自适应可以重复

page {height: 100%;background-image: url(https://onlinekc.a.hlidc.cn/uploads/20241115/350f94aaf493d05625a7ddbc86c7804e.png);background-repeat: repeat;background-size: contain;} 如果不要重复 把background-repeat: repeat;替换background-repeat: no-repeat;

《七大排序算法:原理、实现及性能剖析》

目录 一、七大排序的实现、原理及性能剖析1. 插入排序2. 希尔排序3. 选择排序4. 堆排序5. 冒泡排序6. 快速排序7. 快速排序&#xff08;非递归&#xff09;8. 归并排序9. 归并排序&#xff08;非递归&#xff09; 二、七大排序的复杂度和稳定性分析 一、七大排序的实现、原理及…

报错java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not ...解决方法

在运行项目时出现java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualidzz这样的报错 解决方法 1.第一步&#xff1a;在pom文件中将lombok的版本改成最新的 此时1.18.34是新…

【网络安全】SSL(一):为什么需要 Keyless SSL?

未经许可,不得转载。 文章目录 背景正文背景 随着网站和应用程序向云端迁移,使用 HTTPS(SSL/TLS)加密流量已成为行业标准。然而,传统的 HTTPS 配置要求服务器持有网站的私钥,这在云计算环境中引发了一系列安全性和合规性问题。一旦云服务器遭到攻击,私钥泄露可能带来不…

集群聊天服务器(9)一对一聊天功能

目录 一对一聊天离线消息服务器异常处理 一对一聊天 先新添一个消息码 在业务层增加该业务 没有绑定事件处理器的话消息会派发不出去 聊天其实是服务器做一个中转 现在同时登录两个账号 收到了聊天信息 再回复一下 离线消息 声明中提供接口和方法 张三对离线的李…