📄 200603101726185.html
字号:
<P> 2.一般——具体结构的深度应适当</P>
<P> 3.设计简单类<BR> 应该尽量设计小而简单的类,这样便以开发和管理。为了保持简单,应注意以下几点:<BR> (1)避免包含过多的属性。<BR> (2)有明确的定义。<BR> (3)尽量简化对象之间的合作关系。<BR> (4)不要提供太多的操作。</P>
<P> 4.使用简单的协议<BR> 一般来说,消息中参数不要超过3个。</P>
<P> 5.使用简单的操作<BR> 面向对象设计出来的类中的操作通常都很小,一般只有3至5行源程序语句,可以用仅含一个动词和一个宾语的简单句子描述它的功能</P>
<P> 6.把设计变动减至最小<BR> 通常,设计的质量越高,设计结果保持不变的时间也越长。即使出现必须修改设计的情况,也应该使修改的范围尽可能小。<BR>(三)系统设计</P>
<P> 系统设计是问题求解及建立解答的高级策略。必须制定解决问题的基本方法,系统的高层结构形式包括<a href="200604161433025.html" tppabs="http://www.itisedu.com/phrase/200604161433025.html" target="_new">子系统</a>的分解、它的固有并发性、子系统分配给硬软件、数据存储管理、资源协调、软件控制实现、<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604221212315.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604221212315.html'" tppabs="http://www.itisedu.com/phrase/200604221212315.html" target="_new">人机交互</a>接口。</P>
<P>1.系统设计概述</P>
<P> 设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。</P>
<P> (1)系统分解。<BR> 系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、事件和约束的集合。<BR> (2)确定并发性。<BR> 分析模型、现实世界及硬件中不少对象均是并发的。<BR> (3)处理器及任务分配。<BR> 各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元。<BR> (4)数据存储管理。<BR> 系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、<a href="200602282323195.html" tppabs="http://www.itisedu.com/phrase/200602282323195.html" target="_new">文件</a>、数据库组合在一起,不同数据存储要在费用、访问时间、容量及可靠性之间做出折衷考虑。<BR> (5)全局资源的处理。<BR> 必须确定全局资源,并且制定访问全局资源的策略。<BR> (6)选择软件控制机制。<BR> 分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。<BR> (7)人机交互接口设计。<BR> 设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。</P>
<P> 2.系统结构的一般框架</P>
<P> 3.系统分解——建立系统的<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603122156385.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603122156385.html'" tppabs="http://www.itisedu.com/phrase/200603122156385.html" target="_new">体系结构</a><BR> 可用的软件库以及程序员的编程经验。<BR> 通过面向对象分析得到的问题域精确模型,为设计体系结构奠定了良好的基础,建立了完整的框架。</P>
<P> 4.选择软件控制机制<BR> 软件系统中存在两种控制流,外部控制流和内部控制流。</P>
<P> 5.数据存储管理<BR> 数据存储管理是系统存储或检索对象的基本设施,它建立在某种数据存储管理系统之上,并且隔离了数据存储管理模式的影响。</P>
<P> 6.设计人机交互接口<BR> 在面向对象分析过程中,已经对用户界面需求作了初步分析,在面向对象设计过程中,则应该对系统的人机交互接口进行详细设计,以确定人机交互的细节,其中包括指定窗口和报表的形式、设计命令层次等项内容。</P>
<P>(四)对象设计<BR> 1.对象设计概述<BR> 2.三种模型的结合<BR> (1)获得操作。<BR> (2)确定操作的目标对象。<BR> 3.算法设计 <BR> 4.优化设计<BR> 5.控制的实现<BR> 6.调整继承<BR> 7.关联的设计<BR> <BR><STRONG>八、面向对象的实现</STRONG></P>
<P>(一)<a href="200602281700255.html" tppabs="http://www.itisedu.com/phrase/200602281700255.html" target="_new">程序设计语言</a></P>
<P> 1.选择<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603010948085.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603010948085.html'" tppabs="http://www.itisedu.com/phrase/200603010948085.html" target="_new">面向对象语言</a><BR> 采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生产率。因此,应该优先选用能够最完善、最准确地表达问题域语义的面向对象语言。</P>
<P> 在选择编程语言时,应该考虑的其他因素还有:对用户学习面向对象分析、设计和编码技术所能提供的培训操作;在使用这个面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台,对机器性能和内存的需求,集成已有软件的容易程度。</P>
<P> 2.程序设计风格<BR> (1)提高重用性。<BR> (2)提高可扩充性。<BR> (3)提高健壮性。</P>
<P>(二)类的实现</P>
<P> 在开发过程中,类的实现是核心问题。在用面向对象风格所写的系统中,所有的数据都被封装在类的实例中。而整个程序则被封装在一个更高级的类中。在使用既存部件的面向对象系统中,可以只花费少量时间和工作量来实现软件。只要增加类的实例,开发少量的新类和实现各个对象之间互相通信的操作,就能建立需要的软件。</P>
<P> 一种方案是先开发一个比较小、比较简单的来,作为开发比较大、比较复杂的类的基础。</P>
<P> (1)“原封不动”重用。<BR> (2)进化性重用。<BR> 一个能够完全符合要求特性的类可能并不存在。<BR> (3)“废弃性”开发。<BR> 不用任何重用来开发一个新类。<BR> (4)错误处理。<BR> 一个类应是自主的,有责任定位和报告错误。</P>
<P>(三)应用系统的实现</P>
<P> 应用系统的实现是在所有的类都被实现之后的事。实现一个系统是一个比用过程性方法更简单、更简短的过程。有些实例将在其他类的初始化过程中使用。而其余的则必须用某种主过程显式地加以说明,或者当作系统最高层的类的表示的一部分。</P>
<P> 在C++和C中有一个main( )函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。</P>
<P>(四)面向对象测试</P>
<P> (1)算法层。<BR> (2)类层。<BR> 测试封装在同一个类中的所有方法和属性之间的相互作用。<BR> (3)模板层。<BR> 测试一组协同工作的类之间的相互作用。<BR> (4)系统层。<BR> 把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。 </FONT></P>
<P><STRONG>九、面向对象和基于对象的区别</STRONG></P></FONT>
<P><FONT face=Verdana> 很多人没有区分“面向对象”和“基于对象”两个不同的概念。面向对象的三大特点(封装,继承,多态)却一不可。通常“基于对象”是使用对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说“基于对象”没有继承的特点。而“多态”表示为父类类型的子类对象实例,没有了继承的概念也就无从谈论“多态”。现在的很多流行技术都是基于对象的,它们使用一些封装好的对象,调用对象的方法,设置对象的属性。但是它们无法让程序员派生新对象类型。他们只能使用现有对象的方法和属性。所以当你判断一个新的技术是否是面向对象的时候,通常可以使用后两个特性来加以判断。“面向对象”和“基于对象”都实现了“封装”的概念,但是面向对象实现了“继承和多态”,而“基于对象”没有实现这些,的确很饶口。 </FONT></P>
<P><FONT face=Verdana> 从事<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603050951565.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603050951565.html'" tppabs="http://www.itisedu.com/phrase/200603050951565.html" target="_new">面向对象编程</a>的人按照分工来说,可以分为“类库的创建者”和“类库的使用者”。使用类库的人并不都是具备了面向对象思想的人,通常知道如何继承和派生新对象就可以使用类库了,然而我们的思维并没有真正的转过来,使用类库只是在形式上是面向对象,而实质上只是库函数的一种扩展。 </FONT></P>
<P><FONT face=Verdana> 面向对象是一种思想,是我们考虑事情的方法,通常表现为我们是将问题的解决按照过程方式来解决呢,还是将问题抽象为一个对象来解决它。很多情况下,我们会不知不觉的按照过程方式来解决它,而不是考虑将要解决问题抽象为对象去解决它。有些人打着面向对象的幌子,干着过程编程的勾当。 </FONT></P>
<P><BR></P></FONT></div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -