说说你对发布订阅、观察者模式的理解?区别?

一、观察者模式
观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新

观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新

代理模式(Proxy Pattern)是为一个对象提供一个代用品或占位符,以便控制对它的访问
代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要时,提供一个替身对象来控制这个对象的访问,客户实际上访问的是替身对象

策略模式(Strategy Pattern)指的是定义一系列的算法,把它们一个个封装起来,目的就是将算法的使用与算法的实现分离开来

工厂模式是用来创建对象的一种最常用的设计模式,不暴露创建对象的具体逻辑,而是将将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂

单例模式(Singleton Pattern):创建型模式,提供了一种创建对象的最佳方式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建
[ == 和 =区别,分别在什么情况使用](https://www.h7ml.cn/posts/interview/JavaScript/== _=)
[ 说说 Real DOM 和 Virtual DOM 的区别?优缺点?](https://www.h7ml.cn/posts/interview/React/Real_DOM_Virtual DOM)
说说 Git 常用的命令有哪些? ,- 说说 Git 中 fork, clone,branch 这三个概念,有什么区别?
[ 说说你对 git rebase 和 git merge 的理解?区别?](https://www.h7ml.cn/posts/interview/git/gitRebase_ gitMerge)
[ 说说对 git pull 和 git fetch 的理解?有什么区别?](https://www.h7ml.cn/posts/interview/git/git_pull _git_fetch)
[ 说说你对 git reset 和 git revert 的理解?区别?](https://www.h7ml.cn/posts/interview/git/git_reset_ git_revert)
[

在软件工程中,设计模式是对软件设计中普遍存在的各种问题所提出的解决方案
设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案