这是我参与「第四届青训营 」笔记创作活动的第5天
对设计模式的理解
设计模式不管是做前端还是后端都是要认识和熟练运用的一个知识,我本人又是软件工程专业的所以对这一方面还是要提起重视,之前考软件设计师的时候学过几种常用的设计模式,所以这次就简单说一下我熟悉的设计模式。
设计模式的种类
总体来说设计模式分为三大类:
-
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
-
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
-
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
常用的设计模式
-
单例模式
-
观察者模式
-
装饰者模式
-
适配器模式
-
工厂模式
-
代理模式(proxy)
单利模式
某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。 getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。举一个简单的例子。
public class Singleton {
private static Singleton singleton;
private Singleton() {
}
public static Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}
观察者模式
对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,就像字面意思一样,是观察发生什么事并进行改变的人。
装饰者模式
对已有的业务逻辑进一步的封装,使其增加额外的功能,如Java中的IO流就使用了装饰者模式,用户在使用的时候,可以任意组装,达到自己想要的效果。