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

郑州网站建设维护陕西网页设计

郑州网站建设维护,陕西网页设计,网站建设实训不足,什么网站做的靠枕比较有创意享元模式 1.享元模式含义 享元模式,运用共享技术有效地支持大量细粒度的对象。 其实享元模式很好理解,就是共享元数据的意思。比如一个小狗类对象,里面的属性有头,耳朵,眼睛,毛色这几个属性,…

享元模式

1.享元模式含义

享元模式,运用共享技术有效地支持大量细粒度的对象。

其实享元模式很好理解,就是共享元数据的意思。比如一个小狗类对象,里面的属性有头,耳朵,眼睛,毛色这几个属性,然后需要实例化几个小狗对象出来,但是这几个小狗对象的头、耳朵、眼睛属性值都是相同的,只有毛色是不一样的,那么这种情况下这几个小狗属性就可以共用一个bean的头、耳朵、眼睛属性,然后再各自重新实现自己的不同的毛色属性值。这样的共用基础元数据的模式,就叫享元模式。

2.代码示例

下面以用户登录网站的代码作为示例讲解享元模式

2.1User类

public class User {private String name;public User(String name) {this.name = name;}public String getName() {return name;}
}

2.2WebSite类

WebSite是网站抽象类,定义了一个展示当前登录用户的抽象方法

public abstract class WebSite {public abstract void user(User user);
}

2.3ConcreteWebSite类

ConcreteWebSite是WebSite的具体实现类

public class ConcreteWebSite extends WebSite{private String name;public ConcreteWebSite(String name) {this.name = name;}@Overridepublic void user(User user) {System.out.println("网站分类:" + name + "用户:" + user.getName());}
}

2.4WebSiteFactory类

WebSiteFactory类是WebSIte的工厂类,负责为客户端生成WebSite子类对象

public class WebSiteFactory {private Map<String, WebSite> webSiteMap = new HashMap<>();public WebSite getWebSiteCategory(String name){if (!webSiteMap.containsKey(name)) {webSiteMap.put(name, new ConcreteWebSite(name));}return webSiteMap.get(name);}public int getWebSiteCount(){return webSiteMap.size();}
}

2.5测试类

public class MainApp {public static void main(String[] args) {WebSiteFactory factory = new WebSiteFactory();WebSite bilibili = factory.getWebSiteCategory("哔哩哔哩");bilibili.user(new User("秋秋"));WebSite bilibili2 = factory.getWebSiteCategory("哔哩哔哩");bilibili2.user(new User("张三"));WebSite bilibili3 = factory.getWebSiteCategory("哔哩哔哩");bilibili3.user(new User("李四"));WebSite csdn = factory.getWebSiteCategory("CSDN");csdn.user(new User("王五"));WebSite csdn1 = factory.getWebSiteCategory("CSDN");csdn1.user(new User("领克03"));System.out.println("网站实例对象个数为:" + factory.getWebSiteCount());}
}

运行结果

网站分类:哔哩哔哩用户:秋秋
网站分类:哔哩哔哩用户:张三
网站分类:哔哩哔哩用户:李四
网站分类:CSDN用户:王五
网站分类:CSDN用户:领克03
网站实例对象个数为:2

从运行结果可以看出,一共有3五个用户登录了网站,但是最终网站的实例对象个数仅为2,也就是说,登录哔哩哔哩网站的用户共享了哔哩哔哩网站实例对象,登录CSDN网站的用户共享了CSDN网站实例对象。这就是享元模式,五个用户,分别共享了两个网站的实例对象。

如果没有使用享元模式,那么五个对象登录网站,就要实例化五个网站对象,但是如果真的实例化五个网站对象的话,就是浪费内存空间了,因为这五个网站对象完全一模一样,仅仅是登录的用户名称不一样,改为享元模式,用户共享网站实例对象,这样就可以节省很大的内存开销了。

3.总结

享元模式里面涉及到两个概念,内部状态与外部状态

  • 内部状态:内部状态就是在享元对象内部,并且不会岁环境改变而改变的部分,比如ConcreteWebSite类中的name属性,可以认为是内部状态,虽然它的值也会被改变,但是相对来说,被改变的几率比较小,可以认为是内部状态
  • 外部状态:外部状态跟内部状态相反,它是随着环境的改变而改变。不可以共享的状态就是外部状态,比如ConcreteWebSite类的User对象

如果一个应用程序使用了大量的对象,而大量的这些对象造成了很大的存储开销时就应该考虑使用享元模式,还有救赎对象的大多数状态可以为外部状态。

如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式。

http://www.ds6.com.cn/news/17513.html

相关文章:

  • 网页设计最牛的网站建设seo是如何做优化的
  • 个人网站设计作品图片app开发软件
  • 上海金融网站建设公司设计网站接单
  • 壁画网站建设百度热门关键词排名
  • html怎么做网站版块google ads
  • 户外家具技术支持东莞网站建设双11各大电商平台销售数据
  • 专业从事网站开发公司营销型网站分析
  • 包头网站建设易通百度竞价排名叫什么
  • 网站品牌建设百度账号个人中心
  • 门户网站需要哪些人网络营销软件站
  • 珠海横琴天聚建设工程有限公司网站电脑版百度
  • 贵阳网站建开发网站设计公司报价
  • 哪个网站可以做信用社的题网络营销策划书应该怎么写
  • 济宁公司做网站短视频seo软件
  • 免费建网站软件下载移动网站如何优化排名
  • 长沙58同城招聘网找工作招聘信息短视频seo询盘获客系统
  • 西安市城乡建设委员会网站企业营销策略分析论文
  • 程序员做个网站要多少钱呢杭州网站运营十年乐云seo
  • 深圳网站优化教程广告推广图片
  • 微信公众号怎么创建要多少钱百度seo排名优化公司哪家好
  • 找人做app网站自媒体发稿
  • 金融网站 源码网站推广包括
  • 淘金网站建设推广搜索引擎优化是什么?
  • 做网站会员登陆百度指数在线查询前100
  • 关于幼儿园的网站模板百度做免费推广的步骤
  • 北京网站建设北京谷歌搜索引擎363
  • 自定义wordpress背景图片网站seo软件
  • 室内装修培训搜狗网站seo
  • 做网站工作的怎么填职务郑州seo哪家专业
  • 如何建设企业电子商务网站seo交互论坛