1:单体模式定义:单体模式是用来划分空间并将一批相关属性和方法组织在一起的对象,如果可以被实例化,那么只能实例化一次。
理解:相当于我们把代码都封装在一个起来,只暴漏一个入口,利于维护,清楚全局变量带来的麻烦;
单体模式应用很广,是简单并且常用的模式
看基本结构如图:
2:工厂模式理解:js里面向对象的方法,把一些对象封装,使一些占用空间多的、重复的代码封装起来的一种模式。
工厂对象来创建某一类产品的实例
找一本书,告诉店员,这个店员就会把书给你,店员就是工厂对象,然后店员把书的其他信息带给我就是这个书实例化的体现
输出结果是
工厂模式的进行封装的演示-2
3:桥接模式定义:把抽象化与实现化部分解耦,让二者独立可以变化,
举例:图形包括颜色和形状,我现在想要很多颜色,很多形状,我不能一个一个去包装
通过定义一个各种颜色的api接口,
这时可以在接口里面写画各种颜色的实现类(各个颜色占不同接口),在这时就可以添加抽象的形状类了来调用颜色api
不同引入形状可以调用不同颜色;这样在客户端的时候就可以这样了
假如现在让我们为加一个三角形,只需要增加一个三角形的类就可以了
增加颜色增加一个api就可以了
这样就是利用桥接模式实现了弱化类与实现的耦合。
4:观察者模式:对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会得到通知并自动更新。
自己理解:观察者模式只是单体模式的升级版,区别在于:单体模式在本类内部实现,获取类的实例,而观察者模式则要在另建观察类或观察方法来实现,获取类的实例,而在获取这个类的实例的时候,观察类或观察方法就要对类的实例根据情况进行调整。