架构以及设计模式
文章平均质量分 89
架构以及设计模式
Happy编程
这个作者很懒,什么都没留下…
展开
-
设计模式详解_策略模式
目录一、概念以及结构图二、使用场景以及代码案例三、深入研磨四、优缺点五、关联设计模式1、定义定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。2、解决问题的思路按照策略模式的方式,应该先把所有的计算方式独立出来,每个计算方式做成一个单独的算法类,从而形成一系列的算法,并且为这一系列算法定义一个公共的接口,这些算法实现是同一接口的不同实现,地位是平等的,可以相互替换。这样一来,要扩展新的算法就变成了增加一个新的算法实现类,要维护某个算法,也只是修改某个具体原创 2022-07-03 21:12:06 · 514 阅读 · 0 评论 -
UML_类图_时序图
目录一、UML是什么?二、UML有什么?三、类图四、时序图UML是一种标准化的建模语言,它是面向对象分析与设计的一种标注表示。简单的说,UML由视图构成,视图由图构成,图有图片组成,图片是模型元素的符号化。图是一个具体视图的组成部分,一种视图通常会包含多种图。视图:描述完整系统中的一个抽象,用来显示这个系统中的一个特定的方面。图:用来表示系统的一个特殊部分或某个方面。模型元素:所有可以在图中使用的概念统称为模型元素。1、概念类图是静态视图的图形表达方式,表示声明的静态模型元素,如类、类型和其他内容,以及他们原创 2022-07-01 13:06:14 · 540 阅读 · 0 评论 -
常见面向对象的设计原则
目录一、单一职责原则SRP二、开放一关闭原则三、里氏替换原则四、 依赖倒置原则五、接口隔离原则六、最少知识原则LKP七、其他原则单一职责原则 SRP ( Single Responsibility Principle ), 所谓单一职责原则,指的是一个类应该仅有一个引起它变化的原因。这里变化的原因就是所说的“职责”,如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责.再进一步说,就是把多个职责耦合在一起了。这会造成职责的相互影响,可能一个职责的变化,会影响到其他职责的实现,甚至引起其他职责随着原创 2022-07-01 00:02:53 · 332 阅读 · 0 评论 -
设计模式详解_外观模式
一、外观模式概念二、认识外观模式三、外观模式的代码示例四、外观模式的优缺点五、思考外观模式六、相关设计模式外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。二、外观模式的结构图1、Facade定义子系统的多个模块对外的高层接口,通常需要调用内部多个模块,从而把客户的请求代理给适当的子系统对象。2、模块接收Facade对象的委派,真正实现功能,各个模块之间可能有交互。但我们要注意,Facade对象知道各个模块,但是各个模块不应该..原创 2022-06-30 18:39:24 · 283 阅读 · 0 评论 -
分布式设计之边车模式(Sidecar)
如果我们前期的微服务没有相关的服务治理功能,要对所有的微服务做一些升级该如何下手?主要包括服务治理:监视、日志记录、限流、熔断、服务注册、协议适配转换等。下面介绍的边车模式就是很好解决该问题的一个方法之一。边车模式也叫搭档模式、伴侣模式或跟班模式。生活中的原型就是在原来二轮摩托车旁边增加一个座位成了三轮摩托车,增加的一部分称为边车,如图:边车(Sidecar)模式设计思想的核心是将控制和逻辑分离,常用于我们在分布式架构中的逻辑和控制分离设计。迁移到我们的分布式架构中就是:我们不需要在服务中实现控制面上的东西原创 2022-07-10 09:58:35 · 11611 阅读 · 0 评论 -
DDD实践_如何使用DDD设计代码模型
DDD从入门到精通,系列文章传送地址,请点击本链接。目录一、DDD 分层架构与微服务代码模型二、微服务一级目录结构三、各层目录结构四、注意事项五、领域对象的整理六、从领域模型到微服务的设计七、领域层的领域对象八、应用层的领域对象九、领域对象与微服务代码对象的映射DDD并没有给出标准的代码模型,因此一千人就会有一千个哈姆雷特,下面代码模型是欧创新老师的思考和实践而来。我们可以作为学习的参考。我们参考 DDD 分层架构模型来设计微服务代码模型。没错!微服务代码模型就是依据 DDD 分层架构模型设计出来的。用户接原创 2022-06-27 22:58:33 · 3623 阅读 · 1 评论 -
DDD进阶_DDD如何指导建设中台?
DDD从入门到精通,系列文章传送地址,请点击本链接。目录一、中台的本质二、DDD、中台和微服务的协作模式三、中台如何建模?中台是抽象出来的业务模型,微服务是业务模型的系统实现,DDD 作为方法论可以同时指导中台业务建模和微服务建设,三者相辅相成,完美结合。中台的本质其实就是提炼各个业务板块的共同需求,进行业务和系统抽象,形成通用的可复用的业务模型,打造成组件化产品,供前台部门使用。前台要做什么业务,需要什么资源,可以直接找中台,不需要每次都去改动自己的底层。DDD 的子域分为核心域、通用域和支撑域。划分这几原创 2022-06-27 08:09:16 · 699 阅读 · 0 评论 -
DDD进阶_一文带你搞定什么是前台、中台、后台
一、中台和平台的关系二、什么是中台?三、数字化转型中台应该共享什么?四、如何实现前中后台的协同?1. 前台2. 中台3. 后台平台只是将部分通用的公共能力独立为共享平台。虽然可以通过 API 或者数据对外提供公共共享服务,解决系统重复建设的问题,但这类平台并没有和企业内的其它平台或应用,实现页面、业务流程和数据从前端到后端的全面融合,并且没有将核心业务服务链路作为一个整体方案考虑,各平台仍然是分离且独立的。平台解决了公共能力复用的问题,但离中台的目标显...原创 2022-06-26 10:50:36 · 10342 阅读 · 3 评论 -
DDD进阶_领域事件是什么?如何开展领域事件驱动开发工作?
领域事件是领域模型中非常重要的一部分,用来表示领域中发生的事件。一个领域事件将导致进一步的业务操作,在实现业务解耦的同时,还有助于形成完整的业务闭环。举例来说的话,领域事件可以是业务流程的一个步骤,比如投保业务缴费完成后,触发投保单转保单的动作;也可能是定时批处理过程中发生的事件,比如批处理生成季缴保费通知单,触发发送缴费邮件通知操作;或者一个事件发生后触发的后续动作,比如密码连续输错三次,触发锁定账户的动作。在做用户旅程或者场景分析时,我们要捕捉业务、...原创 2022-06-26 09:58:28 · 2979 阅读 · 0 评论 -
DDD进阶_DDD分层架构、整洁架构、六边形架构
DDD从入门到精通,系列文章传送地址,请点击本链接。 本文主要讲解微服务不同架构下的特点,如果还不了解DDD分层架构的,请先学下DDD的分层架构整洁架构又名“洋葱架构”。为什么叫它洋葱架构?看看下面这张图你就明白了。整洁架构的层就像洋葱片一样,它体现了分层的设计思想。在整洁架构里,同心圆代表应用软件的不同部分,从里到外依次是领域模型、领域服务、应用服务和最外围的容易变化的内容,比如用户界面和基础设施。整洁架构最主要的原则是依赖原则,它定义了各层的依赖关系,越往里依赖越低,代码级别越高,越是核心原创 2022-06-25 14:48:17 · 4820 阅读 · 0 评论 -
DDD进阶_领域设计的分层架构
DDD从入门到精通,系列文章传送地址,请点击本链接。目录一、什么是 DDD 分层架构?1、用户接口层2.应用层3.领域层4.基础层二、DDD 分层架构最重要的原则是什么?三、DDD 分层架构如何推动架构演进?1.微服务架构的演进2.微服务内服务的演进四、三层架构如何演进到 DDD 分层架构?DDD的分层架构图如下,接下来进行一一介绍。用户接口层负责向用户显示信息和解释用户指令。这里的用户可能是:用户、程序、自动化测试和批处理脚本等等。应用层是很薄的一层,理论上不应该有业务规则或逻辑,主要面向用例和流程相关的原创 2022-06-25 13:47:24 · 3451 阅读 · 0 评论 -
DDD基础_领域设计10大基础概念
本文主要讲述领域设计中涉及到的10大基础概念:①领域、②子域、③核心域、④通用域、⑤支撑域、⑥界限上下文、⑦实体、⑧值对象、⑨聚合、⑩聚合根。一、领域和子域DDD 会按照一定的规则将业务领域进行细分,当领域细分到一定的程度后,DDD 会将问题范围限定在特定的边界内,在这个边界内建立领域模型,进而用代码实现该领域模型,解决相应的业务问题。简言之,DDD 的领域就是这个边界内要解决的业务问题域。由于领域是用来界定范围的,.........原创 2022-06-25 09:17:45 · 4682 阅读 · 0 评论 -
DDD从入门到精通(请点赞收藏,欢迎互粉)
本系列文章是极客时间欧创新老师《DDD实战》专栏的学习笔记+自己其他一线相关DDD实践总结。旨在和大家一起学习和交流。如有疑问,请在下方留言。信息收集不易,请点关注和收藏,防止走失一、什么是DDD?2004 年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》(Domain-Driven Design –Tackling Complexity in the Heart of Software)这本书,从此领域驱动设计(Domain Driven Design,简称 DDD)诞生。其包括战略设计部分原创 2022-06-25 09:14:35 · 2882 阅读 · 0 评论 -
DDD基础_微服务设计为什么要选择DDD?
DDD从入门到精通,系列文章传送地址,请点击本链接。 凡事做javaweb开发的,“微服务”三个字我相信已经是耳熟能详了,而在微服务的设计过程中,使用DDD进行战略设计和技术设计指导也越来越流行。那为什么微服务设计要选择DDD呢?我们首先从微服务架构本身的演进说起。这些年来随着设备和新技术的发展,软件的架构模式发生了很大的变化。软件架构模式大体来说经历了从单机、集中式到分布式微服务架构三个阶段的演进。随着分布式技术的快速兴起,我们已经进入到了微服务架构时代。第一阶段是单机架构:采用面向过程的设原创 2022-06-23 23:24:46 · 860 阅读 · 0 评论 -
设计模式--五种方法带你搞懂单例模式
一、饿汉式1、普通饿汉式通过静态全局的方式来实现单例,当对象存在时,不在重复创建。public class Singleton1 implements Serializable { private Singleton1() { if (INSTANCE != null) { throw new RuntimeException("单例对象不能重复创建"); } System.out.println("private Single原创 2022-06-11 10:08:52 · 183 阅读 · 0 评论 -
从0学架构01--架构到底是什么?
目录1、系统和子系统2、模块和组件3、框架和架构4、4R架构5、总结按照百度百科的解释是:架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。从这个定义来看,它是一个设计,那么我们在实际的软件开发过程中,我们谈的架构,它的范围又是怎样的呢?他跟框架有什么关系?接下来我们详细解释如下几个概念和概念之间的关系。系统与子系统模块与组件框架与架构1、系统和子系统什么是系统: 维基百科定...原创 2022-05-29 22:14:02 · 1153 阅读 · 0 评论