当前位置: 首页 > wzjs >正文

欧洲站vat激活seo怎么推广

欧洲站vat激活,seo怎么推广,皖icp备 网站建设,做ic用什么网站享元设计模式 🚩什么是享元设计模式?🚩享元设计模式的特点🚩享元设计模式的结构🚩享元设计模式的优缺点🚩享元设计模式的Java实现🚩代码总结🚩总结 🚩什么是享元设计模式…

享元设计模式

  • 🚩什么是享元设计模式?
  • 🚩享元设计模式的特点
  • 🚩享元设计模式的结构
  • 🚩享元设计模式的优缺点
  • 🚩享元设计模式的Java实现
  • 🚩代码总结
  • 🚩总结

🚩什么是享元设计模式?

享元设计模式(Flyweight Pattern) 是一种 结构型设计模式,它通过 共享对象 来有效支持大量细粒度对象的复用。享元模式的核心思想是 分离对象的内部状态和外部状态,通过共享内部状态来减少内存消耗。

使用场景

  • 当系统需要 创建大量相似对象 时,且这些对象的大部分状态可以外部化。

  • 当对象的 创建成本较高(如占用内存大或初始化时间长)时。

  • 当需要 缓存对象 以提高性能时,如游戏中的粒子系统、文字编辑器中的字符对象等。

🚩享元设计模式的特点

  • 共享对象:通过共享相同内部状态的对象来减少内存消耗。

  • 分离状态:将对象状态分为 内部状态(可共享)外部状态(不可共享)

  • 工厂管理:通常使用工厂类来管理和复用享元对象。

  • 性能优化:特别适用于需要创建大量相似对象的场景。

🚩享元设计模式的结构

享元模式主要包含以下部分:

  • Flyweight(抽象享元):定义对象的接口,声明设置外部状态的方法。

  • ConcreteFlyweight(具体享元):实现抽象享元接口,存储内部状态。

  • UnsharedConcreteFlyweight(非共享具体享元):不需要共享的子类。

  • FlyweightFactory(享元工厂):创建和管理享元对象,确保合理地共享享元。

  • Client(客户端):维护外部状态,并在需要时请求享元对象。

🚩享元设计模式的优缺点

✅ 优点

  • 减少内存消耗:通过共享对象显著减少内存使用。

  • 提高性能:减少了创建对象的数量,降低了系统开销。

  • 灵活性:外部状态可以动态变化,不影响共享的内部状态。

❌ 缺点

  • 增加系统复杂度:需要分离内部状态和外部状态。

  • 线程安全问题:共享对象需要考虑线程安全问题。

  • 不适合所有场景:仅当系统中存在大量相似对象时才有效。

🚩享元设计模式的Java实现

代码地址:GitHub

  • 创建 抽象享元 Shape,定义绘制方法。
/*** @author hanson.huang* @version V1.0* @ClassName Shape* @Description 抽象享元 Shape* @date 2025/3/24 18:23**/
public abstract class Shape {protected String color; // 内部状态public abstract void draw(int x, int y); // 外部状态作为参数
}
  • 创建 具体享元 Circle,实现绘制方法。
/*** @author hanson.huang* @version V1.0* @ClassName Circle* @Description 具体享元 Circle* @date 2025/3/24 18:24**/
public class Circle extends Shape {public Circle(String color) {this.color = color;}@Overridepublic void draw(int x, int y) {System.out.println("draw a color:" + color + " circle x:" + x + " y:" + y);}
}
  • 创建 享元工厂 ShapeFactory,管理享元对象。
/*** @author hanson.huang* @version V1.0* @ClassName ShapeFactory* @Description 享元工厂 ShapeFactory 管理享元对象* @date 2025/3/24 18:24**/
public class ShapeFactory {private Map<String, Shape> map = new HashMap<>();public Shape getShape(String key) {if (!map.containsKey(key)) {map.put(key, new Circle(key));System.out.println("create color:" + key + " circle");}return map.get(key);}
}
  • 测试享元模式
/*** @author hanson.huang* @version V1.0* @ClassName FlyWeightPattern* @Description 测试享元模式* @date 2025/3/24 18:26**/
public class FlyWeightPattern {public static void main(String[] args) {ShapeFactory factory = new ShapeFactory();Random random = new Random();String[] colors = {"red", "blue", "green", "white", "black"};for (int i = 1; i <= 100; i++) {int x = random.nextInt(colors.length);Shape shape = factory.getShape(colors[x]);System.out.print("第" + i + "个圆:");shape.draw(random.nextInt(2025), random.nextInt(324));}}
}

📌 运行结果(部分)

在这里插入图片描述

🚩代码总结

  • 抽象享元 Shape 定义绘制方法,颜色作为内部状态。

  • 具体享元 Circle 实现绘制方法,存储颜色(内部状态)。

  • 享元工厂 ShapeFactory 管理共享的圆形对象,按颜色复用。

  • 客户端 维护外部状态(坐标),通过工厂获取享元对象。

🚩总结

  • 享元设计模式 通过共享对象减少内存消耗,适合处理大量相似对象。

  • 核心是 分离内部状态(可共享)外部状态(不可共享)

  • 适用于 图形编辑器游戏开发文本处理 等需要创建大量相似对象的场景。

✅ 适用场景:

  • 系统需要创建大量相似对象时

  • 对象的大部分状态可以外部化时

  • 需要优化内存使用和提高性能时

  • Java中很多地方用到了享元设计模式,Integer 类内部有一个缓存机制,使用了享元模式来共享一定范围内的 Integer 对象,以此减少对象的创建数量,节省内存。Integer.valueOf() 方法会优先从缓存中获取 Integer 对象,若缓存中不存在才会创建新对象。再例如,java.lang.String 类的字符串常量池是享元模式的典型应用。当创建字符串对象时,如果字符串常量池中已经存在相同内容的字符串,就会直接返回常量池中的对象,而不是创建新对象。

创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

在这里插入图片描述

http://www.dtcms.com/wzjs/87023.html

相关文章:

  • 关于教做鞋的网站2345浏览器主页网址
  • 沈阳市城市建设网站关键词优化 搜索引擎
  • 太原网站建设制作crm管理系统
  • 石家庄哪里做微网站推特最新消息今天
  • 团购做的好的网站专业地推团队
  • 镇江网站搭建网络营销网站推广方案
  • 郴州网站seo百度统计手机app
  • 企业网站怎么做seo优化营销技巧和营销方法视频
  • 邢台做网站的公司哪家好?站长之家关键词挖掘
  • 网站建设费用预算怀柔网站整站优化公司
  • 宝安网站设计公司百度搜索风云榜小说
  • 莱西市城乡建设局网站太原关键词排名推广
  • 登录广东省建设监理协会网站首页网站怎么进入
  • 湖北省建设厅建筑资料官方网站软文是什么东西
  • 北京 网站设计公司百度搜索量最大的关键词
  • 快手官方网站音乐人怎么做石家庄邮电职业技术学院
  • html5移动网站开发实践百度网页pc版登录
  • php+网站开发案例教程优化大师如何删掉多余的学生
  • 金融交易网站开发seo有哪些经典的案例
  • 城乡建设与环保部网站网上竞价
  • h5作品重庆整站seo
  • 企业营销网站怎样做网站优化排名优化
  • 河东做网站chrome手机安卓版
  • 用固定ip做访问网站服务器所有代刷平台推广
  • wordpress 迁移后台空白sem优化公司
  • 做医院网站公司seo快速入门教程
  • html网页制作代码大全css沈阳网站关键词优化多少钱
  • 中山做网站好的公司莆田百度快照优化
  • 接外贸单的平台有哪些百度seo整站优化
  • 离石网站建设草莓永久地域网名入2022