六大原则:
单一职责原则(Single Responsibility Principle, SRP):
一个类只负责一个功能领域中的相应职责,就一个类而言,应该只有一个引起它变化的原因
开闭原则(Open-Closed Principle, OCP):
一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
里氏代换原则(Liskov Substitution Principle, LSP):
所有引用基类(父类)的地方必须能透明地使用其子类的对象。
依赖倒转原则(Dependency Inversion Principle, DIP):
抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程
接口隔离原则(Interface Segregation Principle, ISP):
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口
迪米特法则(Law of Demeter, LoD):
一个软件实体应当尽可能少地与其他实体发生相互作用
单例模式:一个类只有唯一的一个对象
所以需要将构造方法私有化,本类来创建唯一的一个单例对象,再提供一个公共接口来返回该对象。这个公共接口即为一个类的静态方法,保证不能被外界访问,只能通过本类的类名来访问。
1.0 : 懒汉式:用的时候才创建对象
饿汉式:刚进去就要变量,主动找食物
2.0 :线程安全的单例:双重检测机制
3.0 加volatile关键字禁止指令重排序
4.0 静态内部类实现单例模式
5.0 枚举实现单例模式
装饰模式解释:动态给一个对象添加一些额外的职责。