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

巫山网站开发百度外推排名

巫山网站开发,百度外推排名,浙江省湖州艺术与设计学校官网,网络推广怎么免费做定义: 采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗。享元模式以共享的方式高效的支持大量的细粒度对象。享元模式是为数不多的、只为提升系统性能而生的设计模式。它的主要作用就是复用大对象(重量级对象&a…

定义:

采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗。享元模式以共享的方式高效的支持大量的细粒度对象。享元模式是为数不多的、只为提升系统性能而生的设计模式。它的主要作用就是复用大对象(重量级对象),以节省内存空间和对象创建时间。

角色:

  • Flyweight(抽象享元类):通常是一个接口或抽象类,在抽象享元类中声明了具体享元类公共的方法,这些方法可以向外界提供享元对象的内部数据(内部状态),同时也可以通过这些方法来设置外部数据(外部状态)。
  • ConcreteFlyweight(具体享元类):它实现了抽象享元类,其实例称为享元对象;在具体享元类中为内部状态提供了存储空间。通常我们可以结合单例模式来设计具体享元类,为每一个具体享元类提供唯一的享元对象。
  • UnsharedConcreteFlyweight(非共享具体享元类):并不是所有的抽象享元类的子类都需要被共享,不能被共享的子类可设计为非共享具体享元类;当需要一个非共享具体享元类的对象时可以直接通过实例化创建。
  • FlyweightFactory(享元工厂类):享元工厂类用于创建并管理享元对象,它针对抽象享元类编程,将各种类型的具体享元对象存储在一个享元池中,享元池一般设计为一个存储“键值对”的集合(也可以是其他类型的集合),
    可以结合工厂模式进行设计;当用户请求一个具体享元对象时,享元工厂提供一个存储在享元池中已创建的实例或者创建一个新的实例(如果不存在的话),返回新创建的实例并将其存储在享元池中。

代码实现:

public abstract class Flyweight {public abstract void operation(int extrinsicstate);}
public class ConcreteFlyweight extends Flyweight {@Overridepublic void operation(int extrinsicstate) {System.out.println("具体Flyweight:" + extrinsicstate);        }}
public class UnsharedConcreteFlyweight extends Flyweight {@Overridepublic void operation(int extrinsicstate) {System.out.println("不共享的的具体Flyweight:" + extrinsicstate);       }}
public class FlyweightFactory {private Hashtable flyweights = new Hashtable();//获取Flyweight实例对象,如果实例对象不存在就构建,存在直接返回public Flyweight getFlyweight(String key){if ((Flyweight) flyweights.get(key)== null) {flyweights.put(key, new ConcreteFlyweight());}return (Flyweight) flyweights.get(key);}}
public class Client {public static void main(String[] args) {int extrinsicstate = 2;//外部状态FlyweightFactory flyweightFactory = new FlyweightFactory();Flyweight flyweightA = flyweightFactory.getFlyweight("instanceA");flyweightA.operation(--extrinsicstate);Flyweight flyweightB = flyweightFactory.getFlyweight("instanceB");flyweightB.operation(--extrinsicstate);}}

总结

本文主要介绍了享元模式,享元模式优点就在于它能够大幅度的降低内存中对象的数量;而为了做到这一步也带来了它的缺点:它使得系统逻辑复杂化,而且在一定程度上外蕴状态影响了系统的速度。

适用的场景:

  • 如果一个应用程序使用了大量的对象,而大量的这些对象造成了很大的存储开销时就应该考虑使用;
  • 对象的大多数状态可以是外部状态,如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式。
http://www.lbrq.cn/news/2367091.html

相关文章:

  • 巴中做网站公司进入百度知道首页
  • 汕头企业网站推广方法抖音搜索引擎优化
  • 徐州住房和城乡建设局网站如何做网址
  • 鱼巴适设计师服务平台排名优化软件
  • 东莞网站建设哪里找营销型网站建设团队
  • 没有网站也可以做外贸吗营销网站建设制作
  • 做外国语上门按摩服务网站seo运营工作内容
  • 网站的备案信息域名不一样厦门小鱼网
  • asp.net 项目成本预算系统的 网站开发聊城seo
  • 网站建设实训报告要求朋友圈广告代理商官网
  • wordpress 幻灯片手机端字体大小网站排名优化培训哪家好
  • 怎么区分营销型网站软件排名工具
  • 高端的赣州网站建设关键词seo是什么
  • 网络营销与管理专业柏乡seo快排优化
  • 优惠活动制作网站电子商务网站建设方案
  • 武汉哪家做网站比较好郑州网络推广效果
  • 搞笑网站模板百度关键词搜索次数
  • 手机免费app开发制作平台宁波seo关键词排名优化
  • 网站如何做防护百度推广客户端怎样注册
  • 上海做saas平台网站的公司网址大全实用网址
  • 集团企业网站建设公司网站搭建
  • 网站建设seo怎么做关键词排名
  • 7网站建设1外链推广是什么意思
  • 安徽湖滨建设集团有限公司网站关于校园推广的软文
  • 杭州做服装电商拿货的网站中国新闻最新消息
  • 厦门外贸网站建设 之家培训机构招生方案
  • 推进门户网站建设网络营销的四个策略
  • 保定免费做网站seo常用工具有哪些
  • 广东网站建设找哪家网站推广方法大全
  • 什么是企业网站建设福州seo顾问
  • Gradle vs Maven:构建工具世纪对决 —— 像乐高积木与标准模型之间的选择艺术
  • 解决“Windows 无法启动服务”问题指南
  • Liunx练习项目6-创建dns服务器
  • HR数字化转型:3大痛点解决方案与效率突破指南
  • 【Linux网络】:HTTP(应用层协议)
  • PyTorch张量(Tensor)创建的方式汇总详解和代码示例