当前位置: 首页 > article >正文

[图文]课程讲解片段-Fowler分析模式的剖析和实现01

图片

解说:

GJJ-004-1,分析模式高阶+Fowler分析模式的剖析和实现,这个课是针对Martin Fowler的《分析模式》那本书里面的模式来讲解,对里面的模式来剖析,然后用代码来实现。

做到这一步的,我们这个是世界上独一份的。

要注意,这个课程我们只是局限于Fowler书里面的模式,分析模式还有很多人提的很多模式,这个感兴趣的可以再参加,我们有GJJ-004这个课,这个课涉及的范围就更广。

……

图片

接下来是图2.4,这是书上的原图。

图片

解说:

把它转成UML的类图,类似这样。我们可以看到,它这里多了一个超类,组织。这里采用一个泛化关系。

图片

解说:

本来它是各个类中间有关联的,2.3是这样的,我们现在就把这里面的关联不要了,就变成了组织之间的自反关联。

把它搬到这里来了之后,原来这里特有的一些信息就丢失了,所以这里必须要加一些约束。

比如说,经营单位,母必须为空。在原文里面,它是用自然语言描述的,我们这里用OCL描述。这个母必须类型是经营单位,这个必须是分部。

然后,组织的自反关联这里,标了一个层级结构。看过我之前发过的《分析模式漫谈》短视频的同学可能还记得,这个是不严谨的。我们要把它变成严谨的形式化语言。

可能得这样写,从母组织开始,按母组织求闭包,得到一个组织集合,这个集合里面不包含它自己。也就是说,不能有环状的。

但是这个约束是冗余的,因为只要你满足这个,这个肯定是满足的。所以这个地方多加这个约束没有必要。

图片

解说:

组织是超类,大集合。里面小集合,经营单位、地区、分部、销售办事处。我们用不同颜色来标,那么允许的是这样的:黄的上一层是蓝的,蓝的上一层是绿的,绿的上一层是红的,红的上面没有了,空。

因为严格指定之后,假设你要有环,比如说,这个经营单位指向这个分部,就不允许,因为经营单位的母必须为空。这个也不行,绿的母只能是红的,所以它就不可能有指回来的这种可能性。

实际上这里面的代码,这部分代码是可以删掉的,并不影响。

……

图片

图片

图片

图片


http://www.kler.cn/a/537699.html

相关文章:

  • DeepSeek底层揭秘——多模态融合引擎
  • 全面认识 QGIS 界面:开启地理信息处理之旅
  • 全排列问题(LeetCode 46 47)
  • 除了wps还有什么表格软件可以在上面切换不用单独启动窗口
  • RK3568平台开发系列讲解(ConfigFS篇)ConfigFS核心数据结构
  • 化学-基础知识一
  • 2025.2.8——一、[护网杯 2018]easy_tornado tornado模板注入
  • CNN-day10-经典神经网络MobileNet V1&V2&V3
  • Spring 中的 事务 隔离级别以及传播行为
  • kafka 3.5.0 raft协议安装
  • PHP在线客服系统
  • 【WebLogic】Oracle发布WebLogic 14c最新版本-14.1.2.0
  • 「JVS更新日志」生产计划排程系统APS已上线!以及智能BI、低代码、规则引擎2.6更新说明
  • anaconda中可以import cv2,但是notebook中cv2 module not found
  • 深入理解 C++17 std::is_swappable
  • 使用 Axios ——个人信息修改与提示框实现
  • 参数映射服务完整解决方案
  • Could not create task ‘:mainActivity:minifyReleaseWithR8‘.
  • 【Flink快速入门-8.Flink Flink 架构介绍】
  • 利用Termux在安卓手机中安装 PostgreSQL
  • CPP集群聊天服务器开发实践(一):用户注册与登录
  • Chrome谷歌多开教程:实用方法与工具
  • 使用Python和`moviepy`库从输入的图片、动图和音频生成幻灯片式视频的示例代码
  • 盘姬工具箱:完全免费的电脑工具箱
  • DeepSeek从入门到精通:全面掌握AI大模型的核心能力
  • 【Outlook】如何将特定邮件显示在Outlook的重点收件箱中