工作中常用的设计模式

励志当最强课代表的我来给大家总结总结👍👍👍
常用的设计模式
视频内容:
1️⃣策略模式✍️
2️⃣责任链模式📄
3️⃣模板方法模式🏷️
4️⃣观察者模式📑
5️⃣工厂模式🔖
视频内容:
1️⃣策略模式✍️
假设有这样的业务场景,大数据系统把文件推送过来,根据不同类型采取不同的解析方式。

策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的的客户。

2️⃣责任链模式📄
这段代码使用了异常来做逻辑条件判断,如果后续逻辑越来越复杂的话,会出现一些问题:如异常只能返回异常信息,不能返回更多的字段,这时候需要自定义异常类。

当想要让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式。

一个接口或者抽象类
每个对象差异化处理
对象链(数组)初始化(连起来)

3️⃣模板方法模式🏷️
假设新加一个c商户接入,需要再实现一套这样的代码。显然,这样代码就重复了,一些通用的方法,却在每一个子类都重新写了这一方法。

定义一个操作中的算法的骨架流程,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。它的核心思想就是:定义一个操作的一系列步骤,对于某些暂时确定不下来的步骤,就留给子类去实现,这样不同的子类就可以定义出不同的步骤。

一个抽象类,定义骨架流程抽象方法放一起
确定的共同方法步骤,放到抽象类(去除抽象方法标记〉
不确定的步骤,给子类去差异化实现

4️⃣观察者模式📑
登陆注册应该是最常见的业务场景了。就拿注册来说事,经常会遇到类似的场景,就是用户注册成功后.给用户发一条消息,又或者发个邮件等等

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

5️⃣工厂模式🔖
工厂模式一般配合策略模式一起使用。用来去优化大量的f..else...或switch..cas...条件语句我们就取第一小节中策略模式那个例子吧。根据不同的文件解析类型,创建不同的解析对象
