设计模式:
概念:是经过分类编目的代码经验的总结;
理解原理:解决某些设计问题的解决方案;
举例:设计模式类似于三十六计;
设计模式的分类:
共有23个,分为三种类型;
1.创建型:
单例模式,工厂模式,原型模式,构建者模式;
2.结构型;
3.行为型;
注意:设计模式与语言无关,主要解决设计问题;
一、单例模式要解决的问题
当需求是一个类只允许创建一个唯一实例(对象),不能创造多个时;
Person p = new Person();//public的构造方法;
二、如何解决
1.将构造方法定义成私有的;
2.在此类中定义一个static的实例;
3.提供(定义)一个公有的静态方法来返回这个唯一实例,方法名一般定义为getInstance();
三、单例模式的两种类型
1.懒汉式(lazy)
当第一次使用时,才会创建;
2.饿汉式
无论是否使用,都会提前创建好;
注意:两者的区别就是一个if语句;
例:
//sun类
public class Sun { private static Sun s = new Sun();//第二步,在类内定义一个static类型的实例; private Sun(){//第一步,定义私有构造方法 } public static Sun getInstance(){//第三步,定义一个公有静态方法来返回这个唯一实例; if(s==null){//饿汉式有这个判断,懒汉式没有 s = new Sun(); } return s; } }
//test类
public class test { public static void main(String[] args) { Sun s = Sun.getInstance(); System.out.println(s); System.out.println(Sun.getInstance()); System.out.println(Sun.getInstance()); } }