面向对象系统分析与设计(6)
1. 系统设计
- 定义:将分析模型的逻辑结构加以实现前的准备过程。
哪些工作内容:
- 考虑非功能性需求的弊端;
- 考虑全局设计问题;
- 考虑实现的环境 —— implement environment;
- 补充 classes 的所有属性和操作;
- 将 implementation 的工作分成可执行的小块;
- 为 subsystems 间建立接口。
当可以从“分析模式”平滑过渡到“设计模式”时(即无需大改时),就是开始系统设计的最佳时刻。
A Coder,a Programmer,a Developer
说明:本文分析的是 SpringFrameWork(5.0.5.RELEASE)IOC 部分的源码。
IOC:inversion of control,控制反转。应用程序将对象的控制权移交给第三方容器,并通过容器来管理这些被依赖的对象,完成了应用程序与被依赖对象的解耦。
学习项目 Github 地址:code4craft/tiny-spring
上一篇博客:tiny-spring分析笔记(1)
BeanDefinition中,然后用BeanFactory将它们一一注册(包括 setBean),最终实现 getBean。学习项目 Github 地址:code4craft/tiny-spring
使用 map 当作 bean 的容器,避免间接 new ,代替直接 new。
1 | public class HelloWorldService { |
- 特点:可视化、实践性强、面向对象的工业标准、多视角多结论、
- 前提:软件系统能被视为相互关联对象的集合
- 误解:
1. 被认为等同于过程或者理论
2. 被认为等同于面向对象的分析与设计
3. 被认为等同于设计指南
- 结构:
1. 基础模块(Building blocks):物、表、关系等
2. 相同的机理(Common mechanisms):要求、修饰、划分、可扩展性
3. 体系(Architecture):用例、过程、实现、部署等
- 使用 UML 的优势:提高质量、更高效。
- 从现实中抽象:获得必要的细节,过滤掉非必要的细节
- 有助于设计人员处理复杂问题:人类在处理复杂问题时存在局限性
- 集中在关键问题上
- 有助于理解需求、简捷设计、稳定系统的提升
- 更精准地反映现实
- 缩小现实与模型之间的语言鸿沟
- 定位现实的改变
分析:建立模型,收集需求
设计:模型的实现
面向对象系统分析与设计:
面向对象设计:强调**对象的定义**,以及为了满足需求对象之间的进行的**合作**
面向对象模型 OO 的作用: