封装与共生性

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

封装与共生性

1.封装的级别:

a.原始代码行:0级封装;

b:程序快:1级封装;

c:类和对象结构:2级封装;

d:包:3级封装.

e:部件:4级封装.

书中涉及的就这5种封装结构,但不难想象,接下来的封装结构会延续这一特点,也即抽象程度会越来越高,设计的难度也越来越大(设为N级封,则在设计时一方面要考虑该级别的“对象”结构及其交互,同时还要考虑N-1及以下级别的设计要求,包括接口,交互等等)。

2.类的设计要求

TO 0级 1级 2级

FROM

0级 结构化程序 信息输出 -----------

1级 内聚 耦合 -----------

2级 ------------ 类的内聚 类的耦合

3.封装的原因

封装是由于代码,程序和类之间的共生性引起的。共生性的种类:

静态共生性:

名称共生:int i;若i改成j,则程序中有关变量i的引用都要变成j。

类型共生性:如上例,若改成char i,则产生类型共生

常量共生性:如确定一个人的坐标,设(0,0)经度0,纬度0为参考,然后加上相关的移动值,则经纬度之间产生常量共生。

算法共生性:与常量共生性类似

位置共生性:

动态共生性:

执行共生性:必须以一定的顺序执行代码;

同步共生性:时限制;

数值共生性:算法的限制,例如a,b,c三个数值组成一个三角形的要求是任意两个的和大于第三个(类的不变式);

标识共生性:

差异共生性:例如在一个程序中定义了

int i;int j。则如果想把i改成j,除了要考虑i的名称共生,还要考虑差异性共生,即需要先将j改成其他,然后再改i,或者把i改成非j的其他字母。

4.共生性和封装边界

一个没有封装单元的系统会产生两个问题:

a共生性泛滥

b混淆了哪个是真正的共生性,哪个是偶然相似或相临(只是貌似)

5.共生性和可维护性

为了提高系统性能,共生性提供了3个指导原则:

a 通过将系统拆分为封装的元素使得整个共生性(包括差异共生性)达到最小

b 将任何超越封装边界的共生性最小化

c 在封装边界内将共生性最大化

6.共生性滥用的实例

a C++友员函数的

b 无约束的继承·····

c 以来于实现的偶然性

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航