设计模式有23种。
一、工厂模式:工厂模式是由一个具体的类去创建其他类的实例,父类是相同的,父类是具体的。
二、工厂方法模式:工厂方法模式是有一个抽象的父类定义公共接口,子类负责生成具体的对象,这样做的的墓地是将类的实例化操作延迟到子类中完成。
三、单例模式:单例模式分三种,而单例模式要具备三个特点。1.单例类只能有一个实例 2.单例类必须自己创建自己的唯一实例 3.单例类必须给所有其他对象提供这一实例
1、懒汉
public class Singleton { private Singleton() {} private static Singleton single=null; //静态工厂方法 public static Singleton getInstance() { if (single == null) { single = new Singleton(); } return single; } }
懒汉式单例的实现没有考虑线程安全问题,它是线程不安全的,要实现线程安全要加同步锁synchronized。用静态内部类更好一些。
2、饿汉
public class Singleton1 { private Singleton1() {} private static final Singleton1 single = new Singleton1(); public static Singleton1 getInstance() { return single; } }
饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。
3、登记式(了解)