黑马程序员—两种设计模式及其代码的实现—第11篇
2012-04-01 20:42
381 查看
---------------------- android培训、java培训、期待与您交流! ----------------------
写在开头:所有代码都是我一个一个字母敲出来的,用的是低级的代码编辑 器 EditPlus,绝对没有复制粘帖。(Jay.wu QQ:295332752)
单例模式及其代码实现
SINGLETON—俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Singleton,她们只要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的事)
单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。
代码:
模板方法模式及其代码实现
TEMPLATE METHOD
4000
——看过《如何说服女生上床》这部经典文章吗?女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八大步骤(Template method),但每个步骤针对不同的情况,都有不一样的做法,这就要看你随机应变啦(具体实现);
模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。
例如:
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
写在开头:所有代码都是我一个一个字母敲出来的,用的是低级的代码编辑 器 EditPlus,绝对没有复制粘帖。(Jay.wu QQ:295332752)
单例模式及其代码实现
SINGLETON—俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Singleton,她们只要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的事)
单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。
代码:
/* 单例设计模式的代码实现:饿汉式和懒汉式 */ class SingleDemo { public static void main(String[] args) { Single ss=Single.getInstance(); } } /* //饿汉式 开发用这个 class Single { private Single(){} private static Single s=new Single(); public static Single getInstance() { return s; } } */ class Single //懒汉式 一般用于面试 { private Single(){} private static Single s=null; public static synchronized Single getInstance() { if (s==null) { synchronized(Single.class) { if (s==null) s=new Single(); } } return s; } }
模板方法模式及其代码实现
TEMPLATE METHOD
4000
——看过《如何说服女生上床》这部经典文章吗?女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八大步骤(Template method),但每个步骤针对不同的情况,都有不一样的做法,这就要看你随机应变啦(具体实现);
模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。
例如:
/* 获取一段代码运行的时间,代码是不确定的。 */ abstract class GetTime { public final void getTime() { 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 i=0;i<1000 ;i++ ) { System.out.println(i); } } } class TemplateDemo { public static void main(String[] args) { SubTime t=new SubTime(); t.getTime(); } }
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima
相关文章推荐
- [置顶] java面试题:java中的单例设计模式及两种实现方法的代码举例
- 设计模式-策略模式-代码实现
- 设计模式之工厂模式简介与代码实现
- 单例设计模式及其我对它的理解-----黑马程序员
- 详述「设计模式」及其 Java 实现
- 详解Java设计模式中的生产-消费者模式及代码实现
- 简单了解设计模式中的装饰者模式及C++版代码实现
- 黑马程序员-学习日记(单例设计模式的两种类型)
- 【黑马程序员】Java基础学习博客——两种设计模式
- 有关《模式——工程化实现及扩展(设计模式C# 版)》一书中多个章节示例代码中缺少空格的公告
- 设计模式----访问者模式UML和实现代码
- 设计模式之单例模式(C++代码实现)
- 设计模式学习笔记以及java代码实现
- 12、降低三个容器的耦合度代码实现(观察者设计模式)
- 从“假如有下面几种价格10,20,50,请你代码实现将他们排序输出”看设计模式中的策略模式
- Java设计模式之代理模式原理及实现代码分享
- 设计模式用过哪些,应用场景是什么;单例模式有几种实现方式,代码怎么写?
- 两种实现单件模式代码重用的方法
- 设计模式之迭代器模式java实现代码
- Spring 实现两种设计模式:工厂模式和单态模式