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

网络营销网站源码企业网站建设不要空间可以吗

网络营销网站源码,企业网站建设不要空间可以吗,广州网站建设哪里好,吉林省白山市建设厅网站首页享元模式是一种结构型设计模式#xff0c;主要通过共享技术有效地减少大量细粒度对象的复用#xff0c;以减少内存占用和提高性能。由于享元模式要求能够共享的对象必须是细粒度对象#xff0c;因此它又称为轻量级模式。 Flyweight is a structural pattern, which effecti…享元模式是一种结构型设计模式主要通过共享技术有效地减少大量细粒度对象的复用以减少内存占用和提高性能。由于享元模式要求能够共享的对象必须是细粒度对象因此它又称为轻量级模式。 Flyweight is a structural pattern, which effectively reduces the reuse of a large number of fine-grained objects through sharing technology to reduce memory consumption and improve performance. Since the flyweight pattern requires that objects that can be shared must be fine-grained objects, it is also called lightweight mode. 结构设计 Flyweight: 抽象享元类包含原始对象中部分能在多个对象中共享的状态。 同一享元对象可在许多不同情景中使用。 享元中存储的状态被称为 “内在状态”。 传递给享元方法的状态被称为 “外在状态”。 ConcreteFlyweight: 具体享元类实现享元接口并为内部状态(如果存在的话)增加存储空间。 UnsharedConcreteFlyweight: 非共享具体享元类抽象享元类使共享成为可能但并不强制共享。 FlyweightFactory: 享元工厂类 享元工厂会对已有享元的缓存池进行管理。 有了工厂后 客户端就无需直接创建享元 它们只需调用工厂并向其传递目标享元的一些内在状态即可。 工厂会根据参数在之前已创建的享元中进行查找 如果找到满足条件的享元就将其返回 如果没有找到就根据参数新建享元。 享元模式类图表示如下 伪代码实现 接下来将使用代码介绍下享元模式的实现。 // 1、抽象享元类存储的状态被称为 内在状态。 传递给享元方法的状态被称为 外在状态 public abstract class Flyweight {private String intrinsic;protected String extrinsic;public Flyweight(String extrinsic) {this.extrinsic extrinsic;}public abstract void operation(String extrinsic); } // 2、具体享元类实现享元接口 public class ConcreteFlyweight extends Flyweight {public ConcreteFlyweight(String extrinsic) {super(extrinsic);}Overridepublic void operation(String extrinsic) {System.out.println(do some thing in the concrete flyweight instance);} } // 3、非共享具体享元类抽象享元类使共享成为可能但并不强制共享 public class UnsharedConcreteFlyweight extends Flyweight {public UnsharedConcreteFlyweight(String extrinsic) {super(extrinsic);}Overridepublic void operation(String extrinsic) {System.out.println(do some thing in the unshared concrete flyweight instance);} } // 4、享元工厂类 享元工厂会对已有享元的缓存池进行管理。 有了工厂后 客户端就无需直接创建享元 // 它们只需调用工厂并向其传递目标享元的一些状态即可 public class FlyweightFactory {private static final MapString, Flyweight pool new HashMap();public static Flyweight getFlyweight(String extrinsic) {Flyweight flyweight pool.get(extrinsic);if (flyweight null) {flyweight new ConcreteFlyweight(extrinsic);pool.put(extrinsic, flyweight);System.out.println(put a fly weight instance to the pool);}return flyweight;} } // 5、客户端调用 public class FlyweightClient {public void test() {// 从享元工厂获取享元类Flyweight flyweight1 FlyweightFactory.getFlyweight(one);// 执行享元方法flyweight1.operation(one);// 从享元工厂获取重复享元类(直接从缓存池获取)Flyweight flyweight2 FlyweightFactory.getFlyweight(one);flyweight2.operation(one);// 获取非共享享元子类Flyweight unsharedConcreteFlyweight new UnsharedConcreteFlyweight(two);unsharedConcreteFlyweight.operation(two);} }适用场景 在以下情况下可以考虑使用享元模式 (1) 一个系统有大量相同或者相似的对象由于这类对象的大量使用造成内存的大量耗费。 应用该模式所获的收益大小取决于使用它的方式和情景。它在下列情况中最有效 程序需要生成数量巨大的相似对象 这将耗尽目标设备的所有内存 对象中包含可抽取且能在多个对象间共享的重复状态 (2) 对象的大部分状态都可以外部化可以将这些外部状态传入对象中。 使用享元模式需要维护一个存储享元对象的享元池而这需要耗费资源因此应当在多次重复使用享元对象时才值得使用享元模式。 优缺点 享元模式有以下优点 (1) 节省内存。享元模式的优点在于它可以极大减少内存中对象的数量使得相同对象或相似对象在内存中只保存一份。如果程序中有很多相似对象那么可以考虑使用该模式 (2) 享元模式的外部状态相对独立而且不会影响其内部状态从而使得享元对象可以在不同的环境中被共享 但是享元模式也存在以下缺点 (1) 可能需要牺牲执行速度来换取内存为了使对象可以共享享元模式需要将享元对象的状态外部化而读取外部状态使得运行时间变长。 (2) 代码会变得更加复杂。 需要分离出内部状态和外部状态这使得程序的逻辑复杂化 参考 《设计模式 可复用面向对象软件的基础》 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 著, 李英军, 马晓星等译 https://design-patterns.readthedocs.io/zh_CN/latest/structural_patterns/flyweight.html 享元模式 https://refactoringguru.cn/design-patterns/flyweight 享元模式 https://www.runoob.com/design-pattern/flyweight-pattern.html 享元模式 https://www.cnblogs.com/adamjwh/p/9070107.html 简说设计模式——享元模式 https://blog.csdn.net/ShuSheng0007/article/details/116424138 秒懂设计模式之享元模式
http://www.w-s-a.com/news/154579/

相关文章:

  • 3小时网站建设平台专业制作教学课件
  • 曲阜网站建设百度开户现货黄金什么网站可以做直播
  • 比较好的企业建站平台小程序开发外包该注意些什么
  • 建行官网官网网站吗二次元风格wordpress模板
  • 怎样开通自己的网站网址导航哪个主页最好
  • 大良o2o网站建设详情页设计说明怎么写
  • 您与此网站之间建立的连接不安全汽车cms系统是什么意思
  • 有没有做logo的网站企业网站的内容营销
  • 哈尔滨做企业网站怎么做网站自动响应
  • 网站建设硬件和软件技术环境配置签约做网站模板
  • 教育网站建设的素材手机app制作流程
  • 免费行情软件网站大全下载网站备案查询
  • flex网站模板wordpress实时预览
  • 建设银行网站模板为什么企业要建设自己的企业文化
  • 网站建设必知免费手机网站建站系统
  • ssh可以做wap网站么嘉兴seo排名
  • 站内优化包括哪些帝国做企业网站
  • 做网站seo赚钱吗网络维护和故障维修
  • 企业网站可以自己做摄影网站开发背景怎么写
  • 网站百度指数seo最好的工具
  • 宝安专业网站建设推荐设计感强的网站
  • 网站建设 6万元北京知名的品牌设计公司
  • 网站建设的总体需求是什么vmware 下wordpress
  • 光谷网站建设请检查网络
  • 申请建设网站的报告书商务网站开发课程体会
  • 网站开发实训总结致谢群晖wordpress设置
  • 关于酒店网站建设的摘要天津市建设工程信息网官网首页
  • 网站alexa排名查询手机网站制作器
  • 建设小辣猫的网站电子毕业设计网站建设
  • 询广西南宁网站运营礼品定制