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

server/2024/11/19 12:58:12/

前言

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

代码

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/server/143192.html

相关文章

Cesium 相机系统

Cesium 的相机系统是其 3D 地球渲染引擎的重要组成部分&#xff0c;它控制用户在虚拟地球上的视图和交互体验。Cesium 的相机系统具备灵活性和强大的功能&#xff0c;允许开发者自定义视图、导航和交互方式。以下是 Cesium 相机系统的主要特点和功能&#xff1a; 1. 相机的基本…

Spring Boot汽车资讯:科技与速度的新境界

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足&#xff0c;创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…

应用系统开发(12) Zync中实现数字相敏检波

在 Xilinx Zynq 系列(如 Zynq-7000 或 Zynq UltraScale+)中实现数字相敏检波(DSP,Digital Synchronous Detection)可以通过硬件(PL部分,FPGA逻辑)和软件(PS部分,ARM Cortex-A 处理器)的协同工作来实现。以下是一个详细的设计方法,包括基本原理和 Zynq 的实现步骤。…

Windows安装Elasticsearch及Spring Boot整合ES教程

目录 一、在Windows上安装Elasticsearch1. 下载Elasticsearch2. 配置Elasticsearch3. 启动Elasticsearch4. 安装Head插件&#xff08;可选&#xff09; 二、Spring Boot整合Elasticsearch1. 创建Spring Boot项目并添加依赖2. 配置Spring Boot连接Elasticsearch3. 创建实体类和R…

Jenkins + gitee 自动触发项目拉取部署(Webhook配置)

目录 前言 Generic Webhook Trigger 插件 下载插件 ​编辑 配置WebHook 生成tocken 总结 前言 前文简单介绍了Jenkins环境搭建&#xff0c;本文主要来介绍一下如何使用 WebHook 触发自动拉取构建项目&#xff1b; Generic Webhook Trigger 插件 实现代码推送后&#xff0c;触…

RK3568笔记七十:使用xml记录数据

若该文为原创文章,转载请注明原文出处。 一、前言 在开发项目过程中,有一些操作记录或事件数据需要记录在本地或服务器,记录在本地有很多方式,这里记录使用xml简单的方式处理数据。 示例: 这是我想要记录下来的格式,累计记录200条,其中,可以创建参数,修改参数,查询…

数据分析-49-时间序列信息编码之采用虚拟变量

文章目录 1 基本概念1.1 虚拟变量(one-hot)1.2 时间特征2 模拟数据2.1 日期序列2.2 目标序列3 编码虚拟变量(one-hot)3.1 年份编码3.2 月份编码3.3 星期几编码4 拟合模型4.1 构建数据集(每月编码)4.2 构建数据集(每日编码)5 参考附录1 基本概念 1.1 虚拟变量(one-hot) 虚拟变…

Java-03 深入浅出 MyBatis - 快速入门(无 Spring) 增删改查 核心配置讲解 XML 与 注解映射

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…