以面向对象分析阶段产生的分析模型作为输入,通过对分析模型中所有对象和类的分析,明确对象的属性和操作,指定属性的类型特征,补全对象之间的关系,并在不断细化的基础上,把分析模型转化成详细描述如何解决问题、如何实现软件系统的对象模型。
面向对象设计的工作步骤细化和*类;
细化和实现类间关系,明确其可见性;
增加遗漏的属性,指定属性的类型和可见性;
分配职责,定义执行每个职责的方法;
对消息驱动的系统,明确消息传递方式;
利用设计模式进行局部设计;
画出详细的顺序图或协作图。
面向对象设计的工作步骤——细化和*类以面向对象分析过程中得到的分析类为基础,以与对象继承和聚合力度相关的原则为依据,正确地确定继承树的层次和聚合关系的细化程度。
对于架构分析中确定的各个子系统,也必须进一步细化其内部设计。
子系统封装了一组相对独立但比较复杂、无法用一个类来概括的分析类。
把分析类转化成具体的设计类,赋予合适的名字;再分析继承层次和聚合关系,已达到设计类是否能保证代码复用目标的实现。
面向对象设计的工作步骤——细化和实现类间关系,明确其可见性——关系可见性一个对象能够“看见”并且引用另一个对象的能力。
对象A到对象B的可见性:
1.属性可见性:对象A的一个属性指向或引用了对象B,这是一种相对持久的关系,只要对象A存在,它就能引用对象B。
2.参数可见性:对象B是对象A中一个方法的参数,对象A只有在该方法内才能发送消息给对象B。
3.局部声明可见性:对象B是对象A中一个方法内部定义的局部变量,对象A只有在该方法中才会发送消息给对象B。
4.全局可见性:对象B是全局对象,对象A任何时刻都可以发送消息给对象B。
全局可见性不会在类图中表现出来,参数可见性和局部声明可见性是一种比较短暂的关系,只在某个函数中存在,也不需要在类图中出现(特别必要时用依赖关系来表述)。
在类图出现的基本上是具备属性可见性的关系,即通过类属性来实现的类间关系。
面向对象设计的工作步骤——细化和实现类间关系,明确其可见性——关系分类根据相关对象的数量来确定类间关系的类型:一对一、一对多、多对多、归纳关系。
面向对象设计的工作步骤——细化和实现类间关系,明确其可见性——关系分类——依赖关系依赖是一种比较弱的关系,以参数可见性或局部声明可见性的方式使用。
代码: