OOD面向对象的设计方法

OOD是一种解决软件问题的设计范式(paradigm),一种抽象的范式。使用OOD这种设计范式,我们可以用对象(object)来表现问题领域(problem domain)的实体,每个对象都有相应的状态和行为。我们刚才说到:OOD是一种抽象的范式。抽象可以分成很多层次,从非常概括的到非常特殊的都有,而对象可能处于任何一个抽象层次上。另外,彼此不同但又相互关联的对象可以共同构成抽象:只要这些对象之间有相似性,就可以把它们当成同一类的对象类处理。

OOD步骤
细化重组类
细化和实现类之间关系,明确其可见 性
增加属性,指定属性的类型与可见性
分配职责,定义执行每个职责的方法
对消息驱动的系统,明确消息传递的方式
利用设计模式进行局部设计
画出详细的类图和时序图

OOD设计过程中要展开的主要几项工作
1,对象定义规格的求精过程
对于OOA所抽象出来的对象&类以及汇集的分析文档,OOD需要有一个根据设计要求整理和求精的过程,是指更能符合oop的需要。这个整理和求精过程主要有两个方面;一是根据面向对象的概念
模型整理分析所确定的对象结构、属性、方法等内容,改正错误的内容,删去不必要和重复的内容等。而是进行分类整理,以便于下一步数据库设计和程序处理模块设计的必要。整理的方法主要是进行归类,对类、对象、属性、方法和结构、主题进行归类。
2.数据模型和数据库设计
数据模型的设计需要确定类与对象属性的内容,消息连接的方式.系统访问.数据模型的方法等.最后每个对象实例的数据都必须落实到面向对象的库结构模型中.
3,优化:
OOD的优化设计过程是从另一个角度对分析结果和处理业务过程的整理归纳,优化包括对象和结构的优化,抽象,继承.
对象和结构的模块化表示OOD提供了一种范式,这种范式支持对类和结构的模块化.这种模块符合一般模块化所要求的的所有特点,如信息隐蔽性好,内部聚合度强和模块之间耦合度弱等.
集成化使得单个构建有机的结合在一起,相互支持.

OOD和传统方法有什么区别?
还记得结构化设计方法吗?程序被划分成许多个模块,这些模块被组织成一个树形结构。这棵树的根就是主模块,叶子就是工具模块和最低级的功能模块。同时,这棵树也表示调用结构:每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。
那么,哪个模块负责手机程序最终的那些策略?当然是最顶端的那些。在底下的那些模块至关实现最小的细节,最顶的模块关系规模最大的问题。所以,在这个体系结构中越靠上,概念的抽象层次就越高,也越接近问题领域:体系结构中位置越低,概念就越接近细节,与问题领域的关系就越少,而与解决方案领域的关系就越多。
但是,由于上方的模块需要调用下方的模块,所以这些上方的模块就依赖与下方的细节。换句话来说,与问题领域相关的抽象要依赖于与问题领域无关的细节!这也就是说,当实现细节变化时,抽象也就会收到影响。而且,如果我们想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。
而在OOD中。我们希望倒转这种依赖关系。我们创建的抽象不依赖于任何细节,而细节则高度依赖于上面的抽象。这种依赖关系的倒转正事OOD与传统技术之间的根本性差异,也正是OOD思想的精华所在。

作者:箫声_筱昇
链接:https://www.jianshu.com/p/224d8fc4d0f0
來源:简书

你可能感兴趣的:(设计模式,软件工程)