23种设计模式
工厂方法(创建型:解决对象创建问题的)
工厂方法:工厂模式不属于GOF设计模式,也不属于JavaEE设计模式
生产单系列产品。
抽象工厂(创建型)
生产多系列产品。
单例模式(创建型)
单例模式:确保一个类只有一个实例,并提供一个全局访问点。
单例对象无法被垃圾回收器回收,所以通常用来做缓存。
因为单例构造方法私有化了,所以不能被继承。单例模式有饿汉式,懒汉式(懒汉式可能会出现线程安全问题)
(缺省)适配器模式(结构型:更多的类更多的对象组合在一起,形成一个更大的结果来解决某个问题,主要体现在类的组合上)
适配器模式:将一个类的接口转换成客户需要的另一个接口,适配器让两个无法兼容的类可以合作无间。
缺省适配器式适配器模式的特例,有时候代码和丑陋,使用缺省适配器可以让代码变得更优雅:比方说一个接口有多个方法,现在要用到接口中的某一个方法,如果直接继承接口就要实现接口中所有的方法,如果用缺省适配器模式思想,可以用一个抽象类继承这个接口,这个抽象类将接口中其他用不到的方法实现,只留用到的方法为抽象方法,然后用自己的类继承这个抽象类,实现要用到的抽象方法就可以了,这样只有要用到的方法暴露在外面,显得代码更优雅。
装饰者模式(结构型)
在IO中使用了大量的装饰者模式
策略模式(行为型:但凡是和方法或者算法有关的设计模式被归类为行为型设计模式)
策略模式:定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
观察者模式
观察者模式:定义对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
OCP开闭原则
OCP开闭原则:对扩展开发,对修改关闭
依赖倒转原则:开发程序的时候尽量面向接口编程,面向抽象编程,不要面向具体编程