JAVA 模板设计模式和单例设计模式

来源:互联网 发布:mac常用办公软件 编辑:程序博客网 时间:2024/06/05 18:10

一、模板设计模式

模板设计模式,重要的在于思想,程序确定的部分,和不确定的部分组成,这时候可以吧不确定的部分抽象出来,然后对外开放可以访问的方式,再次使用的时候,可以由其子类来继承父类。实现重写抽象方法,来完成不确定的部分。

举例public class Demo01{    public static void main(String[] args){        GetTime gt = new SubTime();        gt.getTime();            //打印五千次 并且计算出用时    }}abstract class GetTime{    //  把需要执行的程序,  抽取成方法    //  不知道怎么写实现部分  可以先不写    //  定义成抽象方法,强制子类去重写方法    public abstract void fun();     public void getTime(){        long startTime = System.currentTimeMillis();   // 定义一个变量,获取系统当前时间        fun();        long endTime = System.currentTimeMillis();     //   定义一个程序执行完毕的时间        System.out.println(“程序运行时间” + (startTime - endTime)+"毫秒");    }}//  使用继承public SubTime extends GetTime{    // 重写 fun() 方法    public void fun(){        for(int i = 0; i< 5000; i++){            System.out.println(i)   //  打印5000次i            }    }}

二、单例设计模式

重点在于思想,饿汉式 和 懒汉式,核心:在整个程序的执行期间,不管你创这个类的对象多少个,整个程序,有且只有一个该类的对象,单实例对象。
如何写一个单例对象出来?

  1. 不让外界创建对象(把构造方法私有化)//
  2. 自己来创建这个对象(写个创建对象的自定义方法)
  3. 对外开放访问该对象的权限(把对象的访问暴露出去)
举例public class Demo02{    public static void main(String[] args){        Single s = Single.getInstence();        s.sayHi();       //  打印 你好        SingleLan sgl = SingleLan.getInstence();        s.sayHi()        //  打印 我是懒汉式    }}// 单例类class Single{    // 创建 单例对象    private static Single single = new Single();    // 构造方法私有华    private Single(){    }    public static Single getInstence(){    return single;    }    public void sayHi(){        System.out.println("你好")    }}//  懒汉式  class SingleLan{    //  声明一个单例对象    public static SingleLan sgl = null;    //  私有化构造方法    public SingleLan(){    }    //  对外开放访问的方法(当用户调用get方法的时候,在创建对象)    public static SingleLan getInstence(){    //  当单例对象为空时  会创建对象    //  一旦单例对象创建出来了,就不会为空    //  所以这个单例对象,就只会创建一次    if(sgl == null){        sgl = new SingleLan();    }    return sgl;    }    public void sayHi(){        System.out.println("我是懒汉式");    }}

单例类 在内存中加载图:
这里写图片描述

原创粉丝点击