A_143_面向对象分析和设计
2021-04-13 10:36:56 1 举报
AI智能生成
全面、高效的知识图谱:A_143_面向对象分析和设计!! 全面又深度的提升认知,达到实际应用的目的! 建议先纵观全局,掌握好大方向。 再根据自己的需要,针对性的学习某一个点,最后做到逐步由点及面。
作者其他创作
大纲/内容
对象模型
程序语言从低级到高级是逐渐靠近问题领域,远离底层硬件的过程
第一代语言面向数学
第二代语言面向算法
全局数据和子程序
第三代语言面向过程
过程和函数是动作,面向过程的本质围绕动词组织的
最适合计算密集型的应用
第四代语言面向对象
对象是名词,面向对象的本质是围绕名词组织的
面向对象设计的目的是为了解决大型系统的复杂度
面向对象编程的定义 OOP
1. 程序被组织成相互协作的对象
2. 对象是类的一个实例
3. 类是由继承关系形成的层次结构
面向对象设计的定义 OOD
面向对象设计是一种方法,包括面向对象分解的过程和一种表示法,这种表示法用于展示被设计系统的逻辑模型和物理模型,静态模型和动态模型
逻辑模型
类和对象
物理模型
模块和处理架构
系统的静态和动态特征
面向对象分析的定义 OOA
从问题域中找到对象和类的名词来分析需求
找到对象之间的关系
过滤对象和类
对象模型的4个主要要素
抽象
抽象描述了一个对象的基本特征,是其区别与其他一切对象的概念边界。与观察者的角度有关。抽象的关键是只关注通用的行为和属性,不考虑具体的实现
实体抽象
代表了问题域实体
通过外部视图提供了对外的契约,通过内部视图来实现对外的契约。契约由一组操作构成
提供静态和动态的属性
动作抽象
代表了一组通用的操作,所有这些操作都执同类的功能
抽象关注于可以被观察到的行为,封装关注于这种行为的实现
封装
每个类必须有两部分,一个是接口,表示对外视图。一个是实现,表示内部视图
模块化
模块将逻辑相关的类和对象打包成独立的物理单元
层次结构
对象模型的3个次要要素
类型
并发
持久
复杂度
4个复杂度原因
问题域的复杂度
功能性需求
非功能性需求
系统用户和开发人员的沟通困难
难以用一致的语言描述问题
管理开发过程的复杂度
通过软件可能实现的灵活性
刻画离散系统行为的问题
5个属性
层次结构
所有系统都有子系统
所有系统都是更大的系统的组成部分
系统提供的价值来自于各个子系统的相互关系
相对本原
选择哪些作为系统的基础组件相对随意,取决于系统观察者的判断
分离关注
层次系统是可分解的
组件内部的联系通常比组件间的联系更加频繁
组件内部作用和组件间作用的差异可以让我们在系统不同部分间分离关注点
共同模式
复杂系统都用共同的模式,可以涉及小组件的复用,比如细胞
稳定的中间形式
复杂系统都是由能工作的简单系统演化而来的
2种层次结构
组成部分 has a
对象结构
是一种 is a
类结构
3类设计方法
自顶向下的结构化设计方法
不考虑数据抽象和信息隐蔽
没有足够手段来处理并发,可伸缩性差
数据驱动的设计方法
系统的输入和输出之间的映射关系驱动软件系统的结构
关注系统的输入和输出
函数式编程
面向对象的设计方法
将系统分解成一组协作的对象
单个对象是类的实例
类有层次关系
从混沌到有序(分而治之)
算法分解
强调了执行的顺序
面向对象分解
强调了一些代理,要么发出动作,要么执行动作
面向对象设计方法的优势
有助于组织软件系统的内部复杂性
通过复用共同的机制,得到一些较小的基础系统,提供了重要的表达经济性
应对变化时更具有弹性,能够随着时间演变。因为面向对象的设计基于稳定的中间状态(简单系统)
面向对象分解极大的降低了构建复杂系统的风险,因为是从较小的系统开始增量地演进
通过分离关注点,直接关注了系统的内部复制性
0 条评论
下一页