0 简介
面向对象方法中对象非常多,两种常见给对象命名的方案:
1) 类名全大写,对象和方法首字母小写;
2) 类名同上,对象和变量用下划线分隔。
3)匈牙利语符号添加类型标签,但可能分散注意力。
面向对象编程强调命名以反映对象角色(如Control
,aController
)。
1 名称很重要:命名方案
类、对象、实例变量和方法的标准命名方案非常重要。这里有两种选择。
- 命名方案 1
类名:连接的单词,每个单词都以大写字母开头。
帐户、银行帐户、CashDispenser、SortedIntegerQueue
宾语、ivar、方法:串联的单词,第一个单词全部小写,后续单词以大写字母开头。
balance, share余额, count, quantityOfFives
列表、节点列表、帐户、newAcct
存款, 余额, 对象At, 分配货币
- 命名方案 2
类名:连接的单词,每个单词都以大写字母开头。
帐户、银行帐户、CashDispenser、SortedIntegerQueue
对象:用下划线分隔的小写字母。
列表、node_list、帐户new_acct
Ivars:小写,用下划线分隔。
平衡、share_balance、计数quantity_of_fives
方法:串联词,第一个词全部小写,后续词以大写开头,
存款, 余额, 对象At, 分配货币
- 匈牙利语符号
所有东西都有一个标识它的标签。此标记将追加到名称中,因此,例如,可以称 float 类型的名为 height 的 ivar height_i_f。同样,每个类都以大写字母“C”结尾。
该方案迫使您进入解决方案空间(编程语言),并分散您对问题空间的注意力。
名称至关重要,原因与它们在非面向对象语言中很重要的原因相同,但也因为面向对象编程的拟人化性质。
在面向对象语言中,通常使用类名和定冠词或不定冠词(Control,aController;视图,视图)。当找不到更合适的名称(列表、员工)时,这些名称很好。
2 面向对象分析和设计的优点:
模块化:面向对象允许您将复杂的系统分解为更小、更易于管理的部件或对象。随着时间的推移,这使得开发、测试和维护代码变得更加容易。
可重用性:由于面向对象强调模块化设计,因此您通常可以在不同的项目或应用程序中重用代码。这可以节省时间和精力,还可以提高代码的整体质量。
可扩展性:面向对象可帮助您设计可扩展的软件,这意味着它可以处理增加的负载或功能,而无需对代码库进行重大更改。
可理解易维护:通过使用标准的面向对象 技术和设计模式,易于维护。
下图示例了继承的例子:
3 面向对象分析和设计的缺点:
在 OOAD 中,任何时候都很难确定系统所需的所有必要类和对象。
我们的大多数项目开发团队都熟悉传统的分析和设计。
OOAD 提供了一种新型的项目管理方式。
这就是为什么可能很难在估计的时间和预算内完成解决方案的原因。
如果没有明确的重用过程,这种方法一般不会导致大规模的成功重用。
以下例子显示了泛化的关系:
4 小结 参考书目:
《面向对象开发的陷阱》 -- 布鲁斯.韦伯斯特 Bruce Webster