六大原则
单一职责原理:一个类只负责一项职责。
里氏替换原则:劲量不要重写父类的已经实现了的方法,可以用接口等其他方法绕开。
依赖倒置原则:高层模块不应该依赖底层模块,二者应依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
接口隔离原则:客户端不应该依赖其他不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
迪米特法则:又叫做最小知道原则。就是一个类对自己依赖的类知道越少越好。
开闭原则:尽量通过扩展软件实体行为来实现变化。
可以分为三种:创建型、结构型和行为型
1.单例模式(singleton pattern)1
2
3
4
5
6
7
8
9
10//饿汉
public class EagerInitializedSingleton {
private static final EagerInitializedSingleton instance = new EagerInitializedSingleton();
//private constructor to avoid client applications to use constructor
private EagerInitializedSingleton(){}
public static EagerInitializedSingleton getInstance(){
return instance;
}
}
1 | //懒汉 |
1 | //双重加锁 |
1 | //使用反射则单例模式无效! |
2.观察者模式