码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象程序设计

时间:2014-08-21 19:35:35      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:系统软件   程序设计   如图所示   开发   动态   

面向对象强调系统的结构应该直接与现实世界的结构相对应,系统应该是围绕对象来构造的,而非功能。从程序设计的角度来看,面向对象的程序设计应该是对象及其相互之间关系的语言成分。可用以下几句话慨括面向对象程序设计:

系统一切皆对象;

对象是属性和操作的封装体;

对象可按性质划分为类;

对象称为类的实例;

实例关系和继承关系是对象的静态关系;

消息传递时对象的动态联系;

方法是消息的序列。

面向对象的三个基本特征:封装、继承、多态。封装是把对象的实现细节隐藏起来,只向外提供一些公用方法;继承是面向对象实现软件复用的重要手段,通过继承,子类可以获得父类的属性和方法;多态是子类对象可以直接赋给父类对象,当运行时根据子类运行的行为决定是哪个具体的对象。

UML(统一建模语言)

bubuko.com,布布扣 

当我们看到如图所示的13种UML图形时,可能会对UML感到恐惧,但在实际中很少都会用到,常用的UML图包括:用例图、类图、组件图、部署图、顺序图、活动图、状态机图。下面简单介绍一下这几类图。

用例图

用于描述系统提供的系列功能,为帮助开发团队以一种可视化的方式理解系统软件,用例图仅仅只是对功能的描述,没有涉及任何实现。

用例图包括用例(某项功能,用椭圆表示,命名应从参与者的角度出发)、“角色”(与系统交互的参与者,以一个人形符合表示)、角色与用例之间的关系以及系统内用例之间的关系。

用例图中包括三种关系:参与者之间的泛化关系,用例之间的包含、泛化与扩展关系。

参与者间的泛化关系(转)

 例如,一个网上订购系统,可以有网上客户、电话客户、直接客户等。可以看出,他们有共同的行为特征,这就是可以用到面向对象的抽象,抽象出更为一般的化的参与者——客户。通过泛化来描述多个参与者之间的共同行为,不同的参与者以独特的方式来使用系统。

bubuko.com,布布扣

用例之间的关系

1、泛化

用例间的泛化关系通常用于同一业务通过不同方式实现,例如某购物系统为用户提供不同的支付方式。

bubuko.com,布布扣

2、包含关系

在包含关系中,基本用例吸收了被包含用例的行为,如果没有后者它将是不完整的。

包含关系的划分有两个好处:一是被包含用例被抽取出来,基本用例得以简化;二是可以抽象出公共事件流,实现代码复用。

bubuko.com,布布扣

3、扩展

将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

对于一个扩展用例,可以在基用例上有几个扩展点。

例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。因此可以采用扩展关系来描述:
bubuko.com,布布扣


面向对象程序设计,布布扣,bubuko.com

面向对象程序设计

标签:系统软件   程序设计   如图所示   开发   动态   

原文地址:http://ypyu1989.blog.51cto.com/6786671/1543232

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!