第十五天,学习一下几个常用模式
一、单例模式
单例模式,就是确保某些类在全项目中只存在一个对象,这样能节省内存和GC开销。
1.1 懒汉模式
懒汉模式一定要等到外部调用 getInstance() 时,对象才会生成。
public class A {
private static A a;
private A() {
super();
}
public static A getInstance() {
if (a == null) {
a = new A();
}
return a;
}
}
1.2 饿汉模式
饿汉模式在外部还未调用getInstance()时,对象早已生成完毕。
public class A {
private static A a = new A();
private A() {
super();
}
public static A getInstance() {
return a;
}
}
1.3 synchronized锁
懒汉模式在多线程操作中,可能由于多个线程同时调用 getInstance() 方法,会导致得到了不同的对象,所以是线程不安全的。
通过 synchronized锁 来修饰方法,可以保证懒汉模式的线程安全
二、装饰者模式
装饰者模式就是一种继承的替补方案
它的核心就是把其他类的引用作为自身的一个属性包装进来。
public class A {
private B b;
public void method() {
b.method();
}
}
三、模板模式
模板模式就是先开发主逻辑框架,具体的实现之后再补充。
public class A {
public void method() {
stepA();
stepB();
stepC();
}
public void stepA() {
//
}
public void stepB() {
//
}
public void stepC() {
//
}
}