作家
登录

记录自己理解的一些设计模式

作者: 来源: 2017-04-08 19:03:08 阅读 我要评论

.valueOf("1") // true照样false 

当时答复的是false,后来翻了下Integer的源码发明Integer琅绫擎有个内部类IntegerCache,用于缓存一些共用的Integer。这个缓存典范围可以在jvm启动的时刻进行设置。

其实后来想想也应当这么做,我们没有需液每次应用对象的时刻都返回新的对象,可以共享这些对象,因为新对象的创定都是须要消费内存的。

比如有一个Student学生类,有name和age两个属性。如不雅有个腥缬须要打印学生名单,并按照字母次序排序,可以应用Comparator接口并在内部应用name进行比较即可。 如不雅哪一天须要按照年纪进行排序,那么只须要修改Comparator即可,也就是应用一个新的策略,其它完全不变。

适配器模式

适配器模式比较好懂得。像生活中插线口的插头有2个口的,也有3个口的。如不雅电脑的电源插口只有3个口的,然则我们须要一个2个口的插口的话,这个时刻就须要应用插座来外接这个3个口的插头,插座上有2个口的插头。

这个例子跟我们编程一样,当用户体系的接口跟我们体系内部的接口不一致时,我们可以应用适配器来完成接口的转换。

应用持续的方法实现类的适配:

  1. public class Source {  
  2. public void method() {  
  3. System.out.println("source method");  
  4.  
  5.  
  6. interface Targetable {  
  7. void method();  
  8. void newMethod();  
  9.  
  10. class Adapter extends Source implements Targetable {  
  11. @Override  
  12. public void newMethod() {  
  13. System.out.println("new method");  
  14.  

测试:

  1. Targetable targetable = new Adapter();  
  2. targetable.method(); // source method  
  3. targetable.newMethod(); // new method 

上述方法是用接口和持续的方法实现适配器模式。当然我们也可以应用组合的方法实现(把Source当成属性放到Adapter中)。

Effectice java中推荐的单例方法写法是应用列举类型的方法。

单例模式

单例模式比较好懂得,Spring就是典范的例子。被Spring中的容器治理的对象都有对应的scope,设备成singleton解释这个对象就是单例,也就是在Spring容器的生命周期中,这个类只有1个实例。

须要留意的如不雅应用dcl的话须要初始化过程,这篇 Java内存模型之大年夜JMM角度分析DCL 文┞仿中说清楚明了dcl的┞俘确用法。

java中单例模式的写法也有很多多少种。比如懒汉式、饿汉式、内部类方法、列举方法等。

【编辑推荐】

  1. 微办事时代 怎么看华闻敉件开辟云实现DevOps落地
  2. Node.js对Java开辟者而言是什么?
  3. 实用贴|实用于开辟者的最佳Chrome扩大对象
  4. 若何成为一名高等开辟人员
  5. 2017年移动开辟情况是趋势转型照样重视安然?都要!
【义务编辑:51CTO_OS TEL:(010)68476606】

  推荐阅读

  人工智能技术是基于大数据吃饭的?

自负年夜 Google 的人工智能 AlphaGO 成为围棋界的百胜将近开端,AI(Artificial Intelligence,人工智能)这两个英文字,刹那间成为科技业最热点的关键字之一。而就在2017岁首?年代,早在>>>详细阅读


本文标题:记录自己理解的一些设计模式

地址:http://www.17bianji.com/lsqh/34663.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)