专栏名称: 北斗之光
我是来自高空的光,发光自己,完满自我,光亮万物。 我已加入“维权骑士”(rightknights.com)的版权保护计划。
目录
相关文章推荐
架构师之路  ·  终于找到答案了!deepseek凭啥能给出这 ... ·  昨天  
架构师之路  ·  架构师之路,24年干货精选(收藏起来慢慢看) ·  3 天前  
架构师之路  ·  信我,有你想要的!最大化deepseek潜能 ... ·  5 天前  
51好读  ›  专栏  ›  北斗之光

框架思维43UML之面向对象的架构原则

北斗之光  · 简书  · 架构  · 2018-02-01 09:46

正文


219

大家想一下,假如我这些事物了,然后怎么样描述事物之间的内在联系,我们是用关系的方式去描述的,然后等我们把这些学完了之后,我们就用我们学到的知识去构造我们的领域模型,你慢慢就会理解,一个岗位有一个职位,然后一个岗位是一个角色,然后一个岗位可以包含多个角色,我们就可能会理解出这样的一个路途,一个岗位是一个角色,然后这个岗位它可以包括一些角色,所以它是一个合成关系,0到1,以及0到多的关系。

一个岗位有一个pose,然后我们就用这样的方式把我们的领域模型给它画出来。包括然后岗位大家讲有职务有职责,然后有它的任务等等这些,我们要一步一步的把它不停地这么细化下去,直到找到一个完整的类图,当然还要找到它的交互图。

怎么表达一个概念模型?一个模型有哪些关键性的东西?怎么表达一个领域模型?怎么定义结构?怎么定义行为的?最好的是你来几个包,每个包里面放什么,这是第一种。这只能描述结构,还得怎么描述行为,以及协作,然后再画交互图,把最关键性的概念之间的关系整明白。

我们最终是用统一建模语言来代表这个架构描述语言,是要描述架构的。我们开发架构的方法是模型驱动的架构,大家现在来设想一下,我们怎么描述架构里面的结构和行为的怎么描述架构的结构和行为?

220

我们用的是建筑快和公共机制,来描述我们的架构和行为的。然后描述我们的建筑快,大家已经知道了,分成几个部分。我们知道模型驱动的架构是一种架构风格,然后我们知道面向对象事件驱动,这些都是一种架构风格,当我们选择了用统一建模语言去描述这个系统架构的我们为这个系统选择了一个最重要的基础性的技术风格,那就是面向对象的这样一种架构风格。

那么,在面向对象里面大家都知道,我们在学设计模式的时候,大家回忆一下面对的图像是什么样的?

面向对象面对上是不是现在我们知道是一种架构风格,我们过去讲它是一种世界观,而这个世界观有四条基本假设。方案空间用对象来描述。问题空间就是方案的空间相对下来描述的,所以这里面它都是对象。然后对象是有类型的,对象可以进行分类,类型和类型以及对象和对象之间是有关系的。

221

然后这个对象和对象之间要交互的。所以最基本的假设,也就是我们整个系统最主要的风格,对象有类型,然后它们之间有关系,类型和类型之间的关系,类型和对象之间有关系,对象和之间有关系,这是一个网。后就说首先是有问题的方案,都是对象,然后对象是有类型的,也就意味着对象是可以进行分类的。它们之间是有关系的,类型和对象之间都是有关系的。对象和对象之间通过交互来进行消息的传递来进行交互,也就这是它们的群体行为,是通过交互的方式来体现出来的。

这是我们的核心图像,面向对象这样的一个架构风格,有它四个最重要的原则。

抽象,封装,我们说先从问题域里面找到抽象,然后把它做什么和如何做进行分离,我们把它叫做封装,然后第三条进行递归分解模块化。第四个怎么组织这些抽象之间的异同点,把它变成一个层次化,这是我们四条原理。

我们整个的架构可能最重要的目标是什么?

我们说当然是从客户的角度来说,为了满足需求,创建一个架构,创建一个系统,满足受众的需要。

但是我们从技术的角度来说,从内部的角度来说,提高抽象物的级别,以及通过关注点的分割,来降低问题的复杂性。我们构造的是大型的复杂的分布式的这样的一个系统。所以复杂性是我们要解决的一个很重要的方面,我们怎么解决我们的复杂性,我们是通过提高我们抽象物的级别,所以我们讲模型驱动架构等等之类的,不停地提高我们抽象问题的级别。

222

当然了,因为提高了问题的抽样的级别,那就是你要理解底下的这些概念,理解更上层的这些概念。你要学习的概念可能就更多了。通过提高问题的出现的级别,然后以及关注点进行分割,来降低了问题的复杂性,从而一个做法处在我们整个系统构建的中心。方案空间,最重要的是需求分析,解决空间,最重要的软件设计架构是把它们俩桥接在一起,处在这样一个中心上。







请到「今天看啥」查看全文