|
|
封装与共生性 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
封装与共生性 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 以来于实现的偶然性

|
|
相关文章:相关软件: |
|