一、面向对象开发的概述
1.面向对象开发的核心原则
——为软件对象类分配职责
2.分析和设计的区别
分析时不要考虑设计
分析时就只看业务是怎样运作的,关注问题和需求。
设计时给出一个概念性的解决方案就可以。
分析:是为了做正确的事情,方向不能错误。
设计:正确的做事情,是落实的方法论问题,保证执行的效率和结果。
3.面向对象开发的要点
面向对象的分析:以放眼望去全是对象类的视角去分析
面向对象设计:定义对象,并理清他们之间的协作关系
4.概念类和设计类
分清楚概念类和设计类,
概念类:业务领域模型,没有操作,只有属性
设计类:软件类,设计类的能力(抽象的能力)决定了你的高度。
设计类中不能完全模仿现实。
设计中,不能完全模仿现实时间,在如下用game对象给让筛子执行就是一个更好的方式。
低表示差异(LRP),领域模型的概念类可以直接拿到设计类中去使用。
二、面向对象分析——概念类的确定
母的:将用户需求转化为软件需求。
用户的角度的吃饭()转化为软件中的消化系统、神经系统、血液系统等。
1.名称法
1.1就是找找客户公司的内部文件中的名词
(也就是自然语言的描述,自己做项目时也要先尽量用自然语言详细描述)
同时找系统对外的硬件接口,操作人员。注意:这俩不是概念类,但概念类中要给他们留接口。
1.2将这些名称整合成一个个的概念类
不要想动词、动作、功能,就找名词
1.3将概念类间添加上关系
关系能少就少,注意类间是可以调用的,不用每个类间都连上线。
1对x,在线上标记好对应的数量
1.4为概念类添加属性
2.分析模型法
从三个维度思考,行为控制,数据,输入输出(展示)三个维度找概念类,也可以从文档中找
实体类:负责处理具体逻辑判断的
边界:对外的接口
控制:调度、整合
三、面向对象的设计
职责驱动的设计
认知职责:包含自己应知道私有的数据、相关对象的数据、可以推到的数据(比如前台知道相关对象的事情,可以推导的数据)
行为职责:自己应该干的事,驱动别的对象应做的动作,控制协调其他对象(领导职责)