分享
 
 
 

C9 :领域,依附集和内聚

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1、对象类的领域

4个主要领域:

1.1 基础领域

基础类:integer,boolean和char,最基本的

结构类:list,binarytree,set等,类似数据结构

语义类:date,time,money等

1.2结构领域

机器间通信类

数据库操作类

人机接口界面类

1.3商业领域

属性类

角色类

相互关系类

1.4应用领域

事件识别类

事件管理类

2、划分类的领域作用

高层次领域中类的模型以低层次领域类的模型为基础。

辩识软件的可重用性的基础,即领域越高,可重用性越差。

3、关于商业领域

非常具有挑战性的一个领域。一般的供应商不具备专业性经验,开发出通用的类库;这样的类投放到市场是一件可怕的事情,这意味着每一个购买者都需要进行客户化改造。

这是不是意味着否定了商业领域类的可重用性?当然不是。最近在看ERP的一些知识。ERP产品是典型的商业领域类库的集合。成熟的ERP产品,比如SAP,BAAN,ORACLE APPLICATION具有相当强的可重用性。这种强只是相对的,客户化定制是不可避免的。考虑到客户化定制的成本及困难程度,不难理解ERP产品实施公司为什么千方百计劝说用户接受定制在产品中的业务流程及管理方式(的确先进,但未必适用于每个企业),而尽量避免对产品本身的改动。

4、依附集

以定量方法考虑基于基础领域的类,这里定量的衡量标准就是依附集。

4.1 直接类引用集:一个类C的直接类引用是该类直接引用的类;

4.2 间接类引用集:假设C的直接类引用集包含类C1,C2,C3,.......,Cn,则C的间接类引用集就是C的直接类引用集和C1,C2,C3,.......,Cn的间接类引用集的并集。显然是个递归定义。

4.3 一个类的直接依附集指这个类的直接类引用集的大小;一个类的间接依附集直的这个类的间接类引用集的大小。

以上定义看起来很难理解,其实并不难,举例如下:

C11 F1

C1 C12 F2

C21 F3

C C2 C22 F4

C31 × F4

C3 C32 F4

则类C 的直接依附集为C1,C2,C3=3,间接依附集为所有类的集合,包括Fi(4),Ci(3),Cij(6)=13

4.4 依附集的使用:处于高级别领域的类具有较高的间接依附集,处于低级别的类具有较低的间接依附集。

5、Demeter规则:限制类的直接依附集的指导原则。

假设C的一个对象为obj,并且假设定义对象obj的所有操作运算为op,那么在执行op操作的过程中,一条消息的每一个目的地一定是下面的对象之一:

a,对象obj本身,self,super

b,在op标记符范围内通过一个参数来引用对象

c,通过obj的一个变量来引用一个对象(若该变量在C内部定义,则为强Demeter规则;若继承于C的父类,则称弱Demeter规则)

d,通过op创建的一个对象

e,通过一个全局变量引用的一个对象

6、类的内聚

6.1混合事例型内聚:一个混合事例型内聚的类具有这样一些特性,对于类的对象来说这些特性是未被定义的。如fish中有teethlength来表示fish牙的长度,则fish具有混合事例型内聚,因为不是所有的Fish的对象都有牙,也许你想通过对没有牙的Fish设置fish.teethlength=0来表示,这是错误的,因为0不等于none。正确做法应该划分noneteethfish和ownteethfish继承fish,在ownteethfish子类中定义teethlength。

6.2混合领域型内聚:一个混合领域型内聚的类包含这样一个元素,这个元素是一个不同领域的非本征类的直接依附集。如类real具有arctan(反正切函数)属性,则real是混合领域型内聚,因为arctan属于Angle(三角形)的一个属性。

6.3混合角色型内聚:一个具有混合角色型内聚的类C包含了这样一个元素,这个元素直接依附集于与C同一领域的类的一个非本征类。如Person类有个numofdog方法表示一个人有多少条狗。Person和Dog类属于商业领域,但是非本征的。所以这个设计是不合理的。但设计人员由于其简单性却经常应用。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有