设为首页 加入收藏

TOP

3.3.2 过于通用的对象
2013-10-07 15:34:13 来源: 作者: 【 】 浏览:76
Tags:3.3.2 过于 通用 对象

3.3.2  过于通用的对象

相对于将不应该是对象的事物当作对象,过于通用的对象可能更糟糕。所有的OOP学生都以类似"桔子"的示例开始-- 这确实是对象,不要怀疑。实际的编码中,对象可以非常抽象。许多OOP程序都有一个"应用程序对象",尽管应用程序并不能以物质的形式表现,但是用对象来表示应用程序仍然是有意义的,因为应用程序本身具有一些属性以及行为。

过于通用的对象是根本不代表具体事物的对象。程序员可能会试图建立一个灵活的或者可以重用的对象,但是最终得到一个令人迷惑不解的对象。例如,考虑一个管理并显示媒体的程序。这个程序可以将照片分类,管理数字音乐唱片,还可以作为个人日志。将所有的事物都当作media对象并创建一个可以容纳所有格式的类就是一种过分的做法。这个类可能具有一个名为data的属性,这个属性包含了图像、歌曲或者日志项的原始位,具体取决于媒体的类型;还可能具有一个名为perform的行为,可以正确地绘制图像、播放歌曲或者编辑日志项。

这个类过于通用的原因在于属性以及行为的名称。单词data本身没有太多的意义--在此必须使用一个通用词语,因为这个类过度地扩展到三种完全不同的情况。同理,perform会在三种不同的情况下执行差别极大的操作。总之,这个设计过于通用,因为media不是一个特定的对象;无论在用户界面中、实际中还是在程序员的头脑中,都不是一个特定的对象。当程序员的脑海中的许多想法都用一个对象连接起来时,这个类可能就太通用了,如图3-2所示。

 
图  3-2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.3 生活在对象世界里 下一篇3.4 对象之间的关系

评论

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

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)