003:对象、类、类之间的关系

来源:互联网 发布:想投诉新疆网络 编辑:程序博客网 时间:2024/05/06 16:56

 

对象:
一切客观存在都是对象,万事万物皆对象(Everything is Object)。
对象有名词性的特征(状态),称之为属性;
对象有动词性的行为(操作),称之为方法。

不同对象之间的交流,称之为消息。

类:
用来描述“一组具有相同特征和行为的对象”的抽象。
类有属性,是对象状态的抽象,用数据来描述;
类有方法,是对象行为的抽象,用名称来描述。

类之间的关系:
类之间的关系非常复杂,所涉及到的名词、概念繁多。

唯物辩证法对事物间的联系这样论述:
联系是指一切事物之间和事物内部各要素之间的相互影响、相互制约和相互作用。
联系是事物本身所固有的客观现象,是不依人的主观意志为转移的,不是人们强加给事物的。
世界上没有孤立存在的事物,每一种事物都是和其他事物相联系而存在的,这是一切事物的客观本性。

同样的道理,孤立存在的类是没有意义的,我们对类之间的相互关系使用“依赖”和“耦合”来描述。
依赖:一个类的改变会引起另外一个类的改变,表示这两个类之间有依赖。粗略的把依赖分为两种类型:
    1、结构性的,由类之间的继承和关联引起;
    2、行为性的,由类的参数变化、类之间消息传递机制等引起
耦合:对依赖关系程度的一种量度。

从依赖的角度讲:
   1、无依赖,表示两个类毫无关系,二者互相独立,互不影响,零耦合;
   2、单向依赖,表示双方的依赖是单向的,一个类发生改变,会对另一个类产生影响,反之则不然,耦合度不高;
   3、双向依赖,表示双方的依赖是相互的,影响也是相互的,耦合度较高。

从耦合的角度讲:
1、零耦合,表示两个类没有依赖;
2、具体耦合,如果一个类持有另一个具体类的引用,那么这两个类就发生了具体耦合关系;
所以,具体耦合发生在具体类之间的依赖,因此具体类的变更将引起对其关联类的影响。
3、抽象耦合,发生在具体类和抽象类的依赖,
其最大的作用就是通过对抽象的依赖,应用面向对象的多态机制,实现了灵活的扩展性和稳定性。

类间关系从依赖的强弱程度和持久性上区分,可以大体的分为如下两类:
类间行为关系(弱,暂时):(狭义的)依赖
类间结构关系(强,持久):
   1、纵向关系:泛化(包括类继承、接口继承、实现)
   2、横向关系:关联(Association) < 聚合(Aggregation) < 组合(Composition)

 

 

转载至杨永喜老师的百度空间http://hi.baidu.com/%D1%EE%D3%C0%CF%B2/home

 

原创粉丝点击