只是说说个人的理解,有问题,可以告诉我吗,我来改正~
工厂模式
其实就是构造函数的创建,然后通过new来生成实例对象
抽象工厂模式
通过class创建类,然后可以相关继承,然后通过new来生成实例对象
单例模式
本质就是,无论创建多少次,都只返回最开始的创建的那个唯一实例,防止重复创建,导致操作数据丢失
装饰器模式
不改变原对象的,去新增一些逻辑(对其进行包装拓展),从而可以满足更复杂的需求
适配器模式
比如说对一个库进行封装或者修改修改,抹平差异,对接口统一适配,简单的说就是,封装复杂的底层逻辑,暴露简单的接口调用
代理模式
当我们不能访问到一个对象,但可以通过代理搭桥间接的去访问到,比如说事件代理,缓存代理(当我们需要用到某个已经计算过的值的时候,不想再耗时进行二次计算,而是希望能从内存里去取出现成的计算结果)
策略模式
就是可以根据不同的参数,来命中不同的策略
状态模式
可以根据不同的参数,来得到不同的结果,怎么类似于策略
观察者模式(和发布-订阅模式区别?)
意为让多个观察者去监听某一个目标对象,当目标对象发生变化时,会通知所有的观察者
大多时候认为观察者模式就是发布-订阅模式,如果非要说区别,如下:
白话举例:
观察者:一个发布者,直接把需求发给多个观察者
发布订阅:发布者把需求交给某个平台,然后这个平台收到后通知给了已经订阅了的观察者
发布者不直接触及到订阅者、而是由统一的第三方来完成实际的通信的操作,叫做发布-订阅模式
迭代器模式
就是遍历
中介者模式
对象与对象之间借助第三方中介者通信
比如说new 一个构造函数,但是这个构造函数中间引用了其他的实例(引用了new其他)
享元模式
笼统的说,就是如果有很多个数据都需要借助一个对象,我们不需要为每一个数据都创建一个对象,而是传递这个对象暴露出来的参数,来达到通过一个对象就可以实现每一个数据的功能