手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

VB.Net中文教程(8) 对象(Object)基本概念

来源:互联网 作者:西部数码 时间:2008-04-10
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

(7) 组织单位(Organization Units)──企业机构之部门或单位。例如﹕在学校管理系统中﹐教务处及训导处等单位皆是对象。
(8) 结构(Structures)──有些对象会包含其它对象。所以在对象中常能找到其它对象。例如﹕在学校的组织单位──教务处﹐含有小对象如注册组及学籍股等。在汽车对象中可找到引擎、轮胎及座椅等对象。在「房屋」对象中﹐会发现到厨房、客厅、沙发等对象。

以上介绍的是常用之寻找对象方法﹐会寻找对象之后﹐就必需将对象分门别类﹐并且了解类别间之关系﹐以便把它们组织起来。例如﹐在公司的人事结构中﹐可发现人因扮演角色之不同而分为不同种类之对象﹐如推销员、司机、经理等等。汽车可分为跑车、巴士、旅行车等不同种类之对象。如何分类(Classification)﹐是OOP 之重要观念。


3. 对象之分类与组织
3.1 类别的永恒性
俗语说﹕物与类聚。「物」和「类」说明对象与其所属「类别」(Class) 之关系﹐相似之对象常归为一类。例如﹕一个人是对象﹐人类是由个人所构成之类别。「狗」这种动物是类别﹐我家那只哈巴狗是对象。当您获知公司有 A、B 两位推销员时﹐可得知 A、B 两者皆为对象﹔同时﹐也联想到「推销员」(Salesman)是类别﹐而 A、B 皆是此类别内之对象。
由于类别比对象较具有永恒性﹐在设计软件的过程中﹐当您找到对象时﹐也必须掌握此对象之类别﹐如此软件自然会更具有永恒性﹐亦即软件的寿命会更长。例如﹐一个人从出生到老﹐不超过二百年﹐而「人类」则因对象生生不息而永远昌隆。在学校里﹐King老师会换工作而离开学校﹐但「老师」类别将永远存在。因之﹐个体及其所属的群体──类别﹐皆是 OOP之核心观念。善于利用类别把对象归类﹐并且组织起来﹐是对象导向软件开发的重要技术。在设计软件时﹐通常必须先决定有关的类别﹐并且弄清楚类别之间的关系。兹介绍两种最常见之类别关系﹕「父子关系」和「整体╱部分关系」。

3.2 父子类别关系
人们从小就学习对东西分类﹐将东西分为「生物」及「无生物」﹐其中生物又分为「动物」及「植物」等。无论动物、植物或生物皆为类别(Class) 。动物是一种(a kind of) 生物﹐植物也是一种生物。此时﹐即称动物是生物的子类别(Subclass)﹐植物也是生物的子类别﹐而生物是动物及植物的父类别(Superclass)。这种父子类别关系是软件中的组织相关对象的重要方法。例如﹕汽车、马车、脚踏车皆为一种车﹔所以﹐车是父类别﹐而汽车、马车及脚踏车皆为车之子类别。
设计软件时﹐当您知道公司今天生产 5部巴士及 5部轿车时﹐您已找到10个对象了﹐其中每一部车皆为对象。它们分别属于不同类别──巴士及轿车﹔然而﹐因巴士及轿车皆为一种(a kind of)汽车﹐所以轻易地找到其更大的类别──汽车。利用父类别──汽车把两个子类别──巴士及轿车组织起来﹐其关系可表示如下:


图1 父子关系

于是﹐在我们所设计的软件中﹐将包含这三种类别。
日常生活中﹐父子关系是很常见的类别关系﹔经由这种关系﹐也很容易决定与软件有关的类别。例如﹕一家公司正在生产 3种鞋子──网球鞋、篮球鞋及慢跑鞋。此时我们已找到了 3种类别──网球鞋、篮球鞋及慢跑鞋。由于网球鞋及篮球鞋皆为一种球鞋﹔所以﹐进而找到父类别──球鞋。球鞋及慢跑鞋皆为一种鞋子﹐所以又找到了它们的父类别──鞋子。因之﹐得到关系如下﹕

图 2 多层父子关系

如果为这家公司设计软件﹐这 5种类别是软件中的重要类别﹐同时这种父子类别关系﹐正是软件用来组织有关对象(各双鞋子)的好方法。由于软件设计者的脑海中﹐对象的组织方法和一般管理者脑海中的分类方法是一致的﹐这能使软件更适切地满足使用者的需要﹐也提高了软件的价值。

3.3 整体╱部分关系
上节谈过﹕对象常包含其它对象﹐从对象之结构(Structure) 能找到其它对象。例如﹕一部汽车含一个引擎及 4个轮胎。


图3 对象之整体╱部分关系

从这对象结构﹐发现到两类别──引擎及轮胎。其类别关系为﹕


图4 类别之整体╱部分关系

引擎是汽车的一部分(A Part Of) ﹐轮胎是汽车的一部分﹐所以汽车是「整体」(Whole) ﹐而引擎及轮胎是「部分」(Part)。
在实际的产品结构中﹐常见整体╱部分关系。例如﹕灯泡含灯心、灯帽及玻璃球﹔书本含封面、目录及内容等部分﹔计算机系统含屏幕、键盘、主存储器及磁盘驱动器等等。在软件设计时﹐也常依照这结构来组织类别及对象。例如﹕在程序中﹐就可定义汽车、引擎及轮胎三种类别。
请注意﹕上述关系﹐其整体与部分间有共生共灭之密切关系。例如﹕一个灯泡破了或者烧坏了﹐通常整个灯泡﹐包括其内部的灯帽、灯心、玻璃球一齐都被丢弃了。于是﹐在软件系统中﹐这些部分对象(如灯心)皆会随着整体对象(灯泡)之消失而一起消失了。反之﹐司机对汽车而言是不可或缺的﹐但没有人认为司机是汽车的组件﹐原因是一部汽车报销了﹐司机可还存在呢﹗然而﹐司机仍是汽车的一部分﹐因为在空间上﹐汽车对象中﹐仍包含了司机对象。因之﹐汽车与司机之间仍是整体╱部分关系。



这种关系也很常见﹔例如﹕笔心是自动铅笔的一部分﹐但笔心并不与铅笔共生共灭。同样地﹐干电池是手电筒的一部分﹐但两种对象并非共生共灭。这种整个╱部分的关系﹐也让我们很容易找出相关的对象和类别﹐同时也能利用这种关系来把软件中的对象组织起来。
上述两种关系是实体物之间的整体╱部分关系。然而在概念性的对象或类别之间也常见整体╱部分关系﹔这些经常是企业活动或计划之概念性对象。例如﹕在旅行社中﹐旅行团的行程常分为数段﹐每一段行程是总行程的一部分。

由于企业营运计划常为企业管理的核心工作﹐而计划或活动经常由数个更小的计划或活动所构成。所以在 OOP技术中﹐常用整体╱部分关系来表示这种概念性类别之关系。
再从企业机构的组织来看﹐一个组织(Organization)经常有其成员(Member)﹐这组织与成员之间也是整体╱部分关系。例如﹕一个公司分为数个部门﹐每一部门又数个职员﹐则部门是一组织﹐而职员是该组织的成员﹔亦即﹐部门与职员是整体╱部分关系。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!