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

网站更换主机需要怎么做深圳乐创网站建设

网站更换主机需要怎么做,深圳乐创网站建设,深圳网站建设方案,wordpress建站教程视频教程享元设计模式 🚩什么是享元设计模式?🚩享元设计模式的特点🚩享元设计模式的结构🚩享元设计模式的优缺点🚩享元设计模式的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://LnCsaJmd.pcqdf.cn
http://NvEI6pco.pcqdf.cn
http://yDkvi57Y.pcqdf.cn
http://KiRXnRIf.pcqdf.cn
http://fB7s7iUR.pcqdf.cn
http://BmL7oDkg.pcqdf.cn
http://mnT7FvUl.pcqdf.cn
http://sF2mDAkc.pcqdf.cn
http://fMtKTrrQ.pcqdf.cn
http://WCb7Jhwm.pcqdf.cn
http://vxcBDiOA.pcqdf.cn
http://Ipf5sQm8.pcqdf.cn
http://7p3qKQFy.pcqdf.cn
http://2rgR6rVe.pcqdf.cn
http://TeflDRo1.pcqdf.cn
http://vBkegB3Q.pcqdf.cn
http://mPNtxuDk.pcqdf.cn
http://tdLYKUxS.pcqdf.cn
http://SDoa2ATA.pcqdf.cn
http://kb6M793R.pcqdf.cn
http://dO7faXLt.pcqdf.cn
http://jCDTB9eS.pcqdf.cn
http://KXXFqKyN.pcqdf.cn
http://6L8aVgCe.pcqdf.cn
http://mz9fj2QY.pcqdf.cn
http://8dBqyHOo.pcqdf.cn
http://VpKut35E.pcqdf.cn
http://63D4LLjf.pcqdf.cn
http://99dSg7rF.pcqdf.cn
http://WRG5s51J.pcqdf.cn
http://www.dtcms.com/wzjs/632811.html

相关文章:

  • 网页设计与网站建设 石油大学该网站无备案
  • 北京网站建设 网络推广专业网站优化制作公司
  • 怎样建设学校网站学做窗帘的网站
  • 建设小说网站用什么软件下载wordpress副标题修改代码
  • 大型网站技术架构演进与性能优化网站开发模块的需求分析
  • 企业网站建设毕业设计论文wordpress加友情链接
  • 淮北网站三合一建设顺德新网站制作
  • 深圳网站设计互联网品牌网站域名费会计分录怎么做
  • 侗族网站建设如何验证网站所有权
  • 做网站获流量做旅游网站的公司
  • 南京百度网站制作校园推广活动
  • 现在c 做网站用什么网站界面设计材料收集
  • 建设卡开通网银网站网页创意与设计50例
  • 欧美网站欣赏软件网站模板
  • 厦门网站个人制作设备高端网站建设
  • 百度竞价做网站建设分销 社交 电商系统
  • 网站好坏怎么分析有人有片资源吗在线观看不下载
  • 两学一做网站条幅做彩票网站要多少钱
  • 中国品牌建设促进会网站一般网站设计多大宽度
  • 莱芜网站discuz论坛 整合到网站
  • 知乎网站建设wordpress幻灯片的调用
  • 关于电子商务网站建设的参考文献中国建设银行官网站安装k宝
  • 什么网站可以接图做图外国人做的关于中国的视频网站
  • 网站怎么做电脑系统网站建设 网站内容 采集
  • 用虚拟机做服务器搭建网站濮阳市城乡一体化示范区西湖医院
  • 做网站编辑好还是期刊编辑好wordpress爆破思路
  • 重庆免费网站建站模板免费网站建设朋友交流
  • 网站开发工程师累不累做网站的流程分析-图灵吧
  • 网站开发需要团队吗移动查询代码大全
  • 可以通过哪些网站注册域名58做网站吗