设计模式
文章平均质量分 72
锋利的绵羊
这个作者很懒,什么都没留下…
展开
-
【设计模式】发布订阅模式,构建可以接收历史消息的观察者类
发布者(被观察者)和订阅者(观察者)。通常的操作是:订阅者订阅发布者的某一个事件,发布者接收到这个事件变化的时候,通知所有的订阅者。举个栗子:你在微信中关注了一个公众号,这个公众号在更新文章的时候,微信会将新的文章推送到你的微信消息中,公众号是发布者,你的微信号是订阅者。你可以关注多个公众号,公众号也可以有多个粉丝。发布订阅模式的优点是可以很方便的实现不同模块之间的通信。它的缺点在于,观察者对象本身是占用内存的,而且当你订阅一个消息后,也许此消息再也没有发布过,但这个观察者对象会始终存在于内存中。原创 2024-04-28 14:31:51 · 328 阅读 · 0 评论 -
【设计模式】使用策略模式优化表单校验逻辑
所谓策略,就是根据已知条件决定要做出怎样的行为。举个栗子:我要实现一个表单校验功能,要求name不能为空且长度必须大于 2 且小于 4,age不能为空且必须为纯数字。这样的判断逻辑直接用if-else// 表单校验逻辑if (!alert("name 不能为空");alert("name 长度必须大于 2 ");alert("name 长度必须小于 4");if (!alert("age 不能为空");if (!alert("age 只能为数字");最终实现的valid()原创 2024-04-25 17:46:14 · 777 阅读 · 0 评论 -
【设计模式】使用中介者模式优化表单交互
在程序里,也许一个对象会和其他 10 个对象打交道,所以它会保持 10 个对象的引用,并且自己维护与其他对象的交互逻辑。当程序的规模增大,对象会越来越多,它们之间的关系也越来越复杂,难免会形成网状的交叉引用。中介者模式的作用就是解除对象与对象之间的紧耦合关系。增加一个中介者对象后,所有的相关对象都通过中介者对象来通信,而不是互相引用所以当一个对象发生改变时,只需要通知中介者对象即可。在中介者模式里,对象之间几乎不知道彼此的存在,它们只能通过中介者对象来互相影响对方。原创 2024-04-24 12:05:04 · 886 阅读 · 0 评论 -
【设计模式】使用 Builder 模式优化参数极多的函数
这样定义的问题是:需要将参数写在固定的位置,随着参数的增多,这种传参方式会变得难以维护。如果遇到某些定义在中间位置的参数为可选参数时,比如上面定义的idCard。原创 2024-04-22 16:33:15 · 548 阅读 · 0 评论