面向对象6_常见的设计模式【单例模式】【模板模式】【组合设计模式】等
2013-11-28 18:19
369 查看
设计模式:对问题行之有效的解决方式。其实它是一种思想。
单例模式
保证一个类在内存中对象唯一性必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
如何保证对象唯一性呢?
1,不允许其他程序用new创建该类对象。
2,在该类创建一个本类实例。
3,对外提供一个方法让其他程序可以获取该对象。
步骤:
1,私有化该类构造函数。 //工具类也有这一步
2,通过new在本类中创建一个本类对象。
3,定义一个公有的方法,将创建的对象返回。
饿汉式 //开发
private static Single s = new Single();//类一加载,对象就存在了 private Single(){} public static Single getInstance()//可加上控制条件 { return s; }
懒汉式 //多线程安全隐患 //面试
private static Single2 s = null;//类加载进来没有对象 private Single2(){} public static Single2 getInstance()//只有调用方法才会创建对象 { if(s==null) s = new Single2(); return s; }
</pre><p></p><h2></h2><p><span style="font-size:18px;">抽象类的应用:</span></p><h1><span style="font-size:18px;">模板方法设计模式</span></h1><div><p>/* 是一种设计思想,将不确定的东西暴露出去,不一定是抽象方法</p><p>获取一段程序运行的时间</p><p>原理:获取程序开始和结束时间相减即可</p><p>获取时间:<span style="font-family: 'Times New Roman';">System.currentTimeMillis();</span></p><p> </p><p>模板方法设计模式</p><p>在定义功能时,功能的一部分是确定的,单有一部分是不确定的(抽象)</p><p>确定的部分在使用不确定的部分,将不确定的部分暴露出去,又该类的子类去完成</p><p>*/</p><p></p><pre code_snippet_id="81294" snippet_file_name="blog_20131128_3_3086082" name="code" class="java">abstract class GetTime { public final void getTime()//确定的功能,使用final避免被覆盖 { long start= System.currentTimeMillis(); runcode(); long end = System.currentTimeMillis(); System.out.println("毫秒:"+(end-start)); } public abstract void runcode(); //抽象方法被子类实现,或者一般方法被子类覆盖 } class SubTime extends GetTime { public void runcode() { for (int x=0; x<1000 ;x++ ) { int sum=0; sum+=x; System.out.print(sum); } } } class TemplateDemo { public static void main(String[] args) { SubTime gt=new SubTime(); gt.getTime(); } }
待续...
相关文章推荐
- java 之 面向对象思想设计原则及常见设计模式
- 面向对象设计思想与常见设计模式小结
- C#面向对象模式设计第十四讲:Template Method 模板模式(行为型模式)
- 跟我学设计模式视频教程——面向对象理论,模板方法
- C#面向对象设计模式学习笔记(8) - Composite 组合模式(结构型模式)
- 面向对象设计模式之Composite组合模式学习笔记
- JavaScript之常见设计模式(2)(面向对象的程序设计)
- 黑马程序员_学习笔记:4) 面向对象2:继承、this、super、finally、Abstract、模板设计模式、接口
- java 之 面向对象思想设计原则及常见设计模式
- 面向对象设计模式之Composite组合模式(结构型)
- 面向对象思想设计原则及常见设计模式
- 【我的Java笔记】Java面向对象思想设计原则及常见设计模式
- 跟我学设计模式视频教程——面向对象理论,模板方法
- 面向对象思想设计原则及常见设计模式
- JavaScript之常见设计模式(1)(面向对象的程序设计)
- 面向对象设计模式之TemplateMethod模板方法(行为型)
- 面向对象篇(OOP)--07 面向对象思想设计原则及常见设计模式
- 面向对象设计模式之---原型模式(Prototype Pattern)
- 设计模式:可复用的面向对象软件元素
- 面向对象设计原则七 - 组合优先于继承