设计模式
文章平均质量分 91
就像建筑不仅仅需要工人,还需要整体的风格设计,软件开发也一样。设计模式提供了许多常用、有效的模式,能够实现功能的同时容易理解。
智慧的牛
为而不有,进退有时。
展开
-
设计模式在项目、框架中应用
随着应用开发的流行,应对变化的需求和不断增长的代码量,一些有经验的开发者提炼出有效应对变化,并使代码结构清晰、易理解维护的实践,设计模式由此而来。本系列文章将介绍设计模式在项目实践、框架源码编写中的应用。设计模式入门 责任链模式 抽象工厂模式 外观模式 观察者模式 代理模式 ...原创 2020-08-15 16:11:23 · 204 阅读 · 0 评论 -
设计模式应用之代理模式
适用场景:要为一些过程增加统一的拦截处理,比如记录日志、权限验证,就可以使用代理模式。通过对实际对象的处理动作进行代理,就可以实现动作拦截、行为控制、增加统一动作的效果。类图分析:角色: 被代理接口 被代理类 代理类举例:1、拦截器实现权限过滤...原创 2020-08-15 16:10:01 · 132 阅读 · 0 评论 -
设计模式应用之观察者模式
适用场景:事件的发布者与订阅者常常属于不同的业务模块、不同的处理线程,如何将这两者、这两个过程解耦,就是观察者模式实现的效果。一个发布者可以对应多个订阅者,一旦发布者发出通知,订阅者收到消息,便可做相应的消息处理。类图分析:角色: 主题 观察者举例:1、消息队列在分布式应用中,为了达到模块之间解耦、数据处理过程异步拆解的目的,常常会以消息的形式来触发过程执行,通知者和被通知者分别对应消息队列中的发布者和订阅者。比如订单生成成功后,锁定库存需要同步进行,但是订单操作日志记录的工作实时性要.原创 2020-08-15 16:08:51 · 148 阅读 · 0 评论 -
设计模式应用之外观模式
适用场景:封装内部的多个服务的功能,给外界提供一个统一的接口。类图分析:角色:对外接口 内部实现类举例:1、快麦erp,模块一Dubbo接口的形式暴露本模块的对外功能接口,这些接口的实现中包含对本模块的服务功能的整合。...原创 2020-08-15 16:06:49 · 142 阅读 · 0 评论 -
设计模式应用之抽象工厂模式
适用场景:需要根据"系列名称"等来获取一系列的对象实例,这些对象实例有一个聚合的业务含义,比如都属于鞋子加工过程中用到的设备。类图分析:角色:抽象工厂 工厂 抽象产品 产品举例:1、快麦erp,业务流程中需要与不同平台(淘宝、京东)交互,比如从不同平台下载订单,下载部分的代码包含平台接口请求以及转化为我们系统的订单实体的代码。我们将这些与平台相关的业务逻辑代码提取出来,作为抽象接口,在业务代码中使用的时候以PlatformAccessManager.load(平台名,业务类.class)原创 2020-08-15 16:04:24 · 175 阅读 · 0 评论 -
设计模式应用之责任链模式
适用场景:在一个流程中,对某一个对象有一串不同的业务处理操作,可以把这些业务操作封装成一个抽象业务的不同实现类,便于在链路中动态添加处理逻辑。类图分析:角色:请求者处理者 处理者链路举例:1、快麦erp,订单进入系统后,需要进行一系列的后续处理动作:敏感信息加密、分配赠品、匹配仓库、物流方式、锁定库存,这些动作可以都抽象成对订单的操作,以链路的方式将这些动作串起来。2、Sentinel的SlotChainSentinel是一个流控框架,对进来的请求进行统计、限流、权限控制、降级.原创 2020-08-15 16:01:52 · 167 阅读 · 0 评论 -
设计模式入门
本文是设计模式的总体介绍,分别介绍了设计模式的作用与本质,有哪些类型,设计模式的根本原则。转载 2020-08-15 15:40:46 · 159 阅读 · 0 评论 -
设计模式及其在项目、框架中的应用
本文以适用场景、类图分析、举例三部曲的方式讲解设计模式,举例时以真实项目中以及框架中的应用的为例,主要以类图、伪代码等方式展示结构。原创 2024-03-23 23:03:59 · 1007 阅读 · 0 评论