设计模式
文章平均质量分 74
悟空学编程
十多年软件开发和管理经验,爱好编程与机器学习。
展开
-
二十二、状态模式——不同形态下的绿巨人
用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。原创 2022-04-06 17:47:48 · 757 阅读 · 0 评论 -
二十一、解释器模式——解析表达式和脚本
解释器模式代码实现的核心思想,就是将语法解析的工作拆分到各个小类中,以此来避免大而全的解析类。一般的做法是,将语法规则拆分成一些小的独立的单元,然后对每个单元进行解析,最终合并为对整个语法规则的解析。原创 2022-04-03 20:03:57 · 1376 阅读 · 0 评论 -
二十、中介模式——由网状关系变为星形关系
中介模式定义了一个单独的(中介)对象,来封装一组对象之间的交互。将这组对象之间的交互委派给与中介对象交互,来避免对象之间的直接交互。通过引入中介这个中间层,将多对多(网状关系)转换为一对多(星状关系)。降低了代码的复杂度,提高了代码的可读性和可维护性。原创 2022-04-03 15:52:12 · 991 阅读 · 0 评论 -
十九、命令模式——将数据封装为对象,对象封装为命令
命令模式的主要作用和应用场景,是用来控制命令的执行,比如,异步、延迟、排队执行命令、撤销重做命令、存储命令、给命令记录日志等等。原创 2022-04-03 15:05:05 · 1203 阅读 · 0 评论 -
十八、备忘录模式——SL大法,读档的实现
备忘录模式也叫快照模式,就是在不违背封装原则的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态其应用场景也比较明确和有限,主要是用来防丢失、撤销、恢复等。它跟平时我们常说的“备份”很相似。原创 2022-04-03 12:44:35 · 4061 阅读 · 0 评论 -
十七、访问者模式——accpet后你就可以visit(this)了
Visitor 模式的应用场景有限,一般情况通过工厂方法也可以实现对应的工具类访问器的生成。原创 2022-04-01 15:23:03 · 298 阅读 · 0 评论 -
十六、迭代器模式——游标指针的漫步与游走
迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。迭代器模式是一种对象行为型模式。引入Iterator后可以将遍历与实现分离开来。原创 2022-03-31 16:50:31 · 553 阅读 · 0 评论 -
十五、责任链模式——多层过滤净化
在责任链模式中, 将请求的发送与接收解耦,让接收对象都能接收这些请求并进行处理,请求的路径是一条链路,请求沿着路径直到被处理。在WEB项目中的Filter、Spring的Interceptor中大量使用了责任链模式。原创 2022-03-31 16:11:01 · 323 阅读 · 0 评论 -
十四、策略模式——你要黄焖鸡、手撕鸡、大盘鸡、叫花鸡都可以,指定一个吧
策略模式(Strategy Design Pattern)通过定义一类算法族,让这样类可以相互替换,将算法抽取后根据需要搭配使用不同的算法。原创 2022-03-31 14:17:22 · 595 阅读 · 0 评论 -
十三、模板模式——具体工艺我不管,但流程必须一样。
模板模式(Template Design Pattern) 定义了算法骨架,具体的功能步骤的实现由子类完成。注意模板方法需要定义为final类型,防止子类覆写。如果不设置为final类型,则需要像AbstractList类一样,抛出异常。模板方法实现了流程复用、功能扩展。通过提供一个小型的框架实现了较大的灵活性。原创 2022-03-31 13:37:23 · 538 阅读 · 0 评论 -
十二、观察者模式——你如果关心我就注册吧,我会把你放进名单中
观察者模式(Observer Design Pattern) 也称为发布订阅模式,当观测对象发生状态变化时,依赖的对象会收到通知。原创 2022-03-31 13:06:53 · 278 阅读 · 0 评论 -
十一、享元模式——共享模式带来资源的节约
享元模式为工厂方法模式增加了缓存这一功能。原创 2022-03-31 12:25:14 · 282 阅读 · 0 评论 -
十、组合模式——他大舅他二舅都是他舅
组合模式,将一组对象组织成树形结构,将单个对象和组合对象都看做树中的节点,以统一处理逻辑,并且它利用树形结构的特点,递归地处理每个子树,依次简化代码实现。原创 2022-03-31 10:45:11 · 369 阅读 · 0 评论 -
九、门面模式——我是大管家,找我就行了。
门面模式提供了统一调用接口,就像一个大管家提供了一站式服务。门面模式可以解决接口调用易用性的问题、减轻客户端多次调用接口所带来的的性能问题、以及解决分布式事务,将多个事务整合在一起。原创 2022-03-31 10:01:49 · 340 阅读 · 0 评论 -
八、适配器模式——两手都要抓两手都要硬
适配器常用于兼容新旧系统或者项目,有没有一点像和稀泥的感觉,既要实现旧接口又要实现新接口,或者继承自原有类并实现新接口。通过组合或者继承的方式均可以实现这种适配目的。原创 2022-03-31 09:31:49 · 349 阅读 · 0 评论 -
七、装饰器模式——俄罗斯套娃的把戏
装饰器模式动态地给对象添加一些额外的职责或者行为,装饰器模式相比于生成子类更为灵活。它和代理模式很像,但它持有的对象和自己同宗,且可以嵌套调用。原创 2022-03-30 17:31:36 · 746 阅读 · 0 评论 -
六、桥接模式——将多重继承增加一个旁路
在使用桥接模式时,首先应该识别出一个类所具有的两个独立变化的维度,将它们设计为两个独立的继承等级结构,为两个维度都提供抽象层,并建立抽象耦合。原创 2022-03-30 16:47:25 · 1028 阅读 · 0 评论 -
五、代理模式——奉天子命诸侯
代理模式常用于对功能需求进行增强,增加一些非业务性的功能,比如监控、统计、鉴权、限流、事务、幂等、日志。原创 2022-03-30 15:52:01 · 147 阅读 · 0 评论 -
四、原型模式——别自己造了,复制吧
原型模式非常适合于你想要向客户隐藏实例创建的创建过程、或者需要快速复制对象的场景。原创 2022-03-30 12:25:38 · 140 阅读 · 0 评论 -
三、建造者模式——麦当劳的配餐服务
建造者模式就像一位厨师,在你点餐的时候会给你搭配薯条和番茄酱,给你炸鸡和啤酒,然后不断的放在你的餐盘上,最后送到你面前。原创 2022-03-29 17:40:57 · 401 阅读 · 0 评论 -
二、工厂模式——在工厂里能找到你的对象
工厂模式将构建对象的职责封装起来了,增加了代码复用性。抽象工厂能够快速将一组产品替换为另一组。工厂模式是思路在IOC容器中使用到,但IOC容器是依托反射实现对象构造的。原创 2022-03-29 15:36:26 · 656 阅读 · 0 评论 -
一、单例模式——它是弥赛亚 它是The One
单例模式的使用无处不在,我们了解一下吧!原创 2022-03-25 14:40:32 · 394 阅读 · 0 评论 -
设计模式的意义
文章目录1.为何学习设计模式2 设计原则2.1 SOLID原则2.2 DRY 、KISS 、YAGNI 、LOD3. 面向对象编程语言3.1 面向对象与面向过程3.2 面向对象的细节3.3 UML3.4 OOA OOD 示例4.二十三种设计模式4.1 创建型设计模式(1) 单例模式(2) 工厂模式(3) 建造者模式(4) 原型模式2.1 结构型设计模式(5) 代理模式(6) 桥接模式(7) 装饰器模式(8) 适配器模式(9) 门面模式(10) 组合模式(11) 享元模式2.1 行为型设计模式(12) .原创 2022-03-25 14:34:17 · 1153 阅读 · 0 评论