黑马程序员—两种设计模式及其代码的实现—第11篇

来源:互联网 发布:大数据解决方案供应商 编辑:程序博客网 时间:2024/06/08 10:09

---------------------- android培训、java培训、期待与您交流! ----------------------

 

 写在开头:所有代码都是我一个一个字母敲出来的,用的是低级的代码编辑   器 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——看过《如何说服女生上床》这部经典文章吗?女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八大步骤(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
原创粉丝点击