设为首页 加入收藏

TOP

3.3.1 过度使用对象
2013-10-07 15:34:07 来源: 作者: 【 】 浏览:66
Tags:3.3.1 过度 使用 对象

3.3.1  过度使用对象

在设计一个创造性的面向对象系统以及惹恼团队中所有其他人(将所有细小的事情都转换为对象)之间存在一条细线。正如弗洛伊德过去常说的那样,有时候变量就只是变量。好的,下面解释这句话的含义。

或许您正在设计一个预计会畅销的井字游戏。您竭尽所能地采用OOP方法,因此您坐了下来,喝一杯咖啡,用一台笔记本大概地描述了所需要的类和对象。在这类游戏中,通常会有一个对象监视游戏的进度,并判断胜方。为了表示游戏棋盘,您可能想用Grid对象跟踪标记以及它们的位置。实际上,表示X或者O的Piece对象是Grid的一个组件。

等下,退回去!这个设计打算用一个类代表X或者O。这就是过度使用对象的一个例子。用char不能代表X或者O么?另外,用一个枚举类型的二维数组表示Gird不是更好么?看看表3-2建议的棋子类。

表  3-2

< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

   

   

Piece

X或者O

这个表格有点稀疏,这有力地表明此处的内容很少,并不需要一个对象。

另一方面,深谋远虑的程序员可能这样认为,尽管当前Piece类很小,但是使用对象可以在将来扩展时不受影响。或许发展下去这会成为一个图形程序,用Piece类支持绘图行为可能是有用的。其他属性可能是Piece的颜色或者Piece是否是最近移动的那个。

另一种方案是考虑方格的状态而不是使用棋子。方格的状态可能是空、X或者O。为了在将来支持图形应用程序,可以设计一个抽象超类State,其具体子类StateEmpty、StateX以及StateO知道如何表示自身。

显然在此不存在正确答案,关键是在设计应用程序时应该考虑这些问题。记住对象是用来帮助程序员管理代码的,如果只是为了使得代码"更加面向对象"而使用对象,那么就错了。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.4.1 "有一个"关系 下一篇3.2.5 综合考虑

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)