游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2388|回复: 6

生物在进化的过程中往往会抛弃一些先祖的东西,C++中为

[复制链接]

45

主题

157

帖子

169

积分

注册会员

Rank: 2

积分
169
QQ
发表于 2009-11-21 09:53:00 | 显示全部楼层 |阅读模式
    生物在进化的过程中往往会抛弃一些先祖的东西,才能适应严酷的环境变化得以继续生存,比如驼鸟就抛弃了先祖会飞的特性,才能在奥大利亚的大草原上生存下来。而我们的子类可不可以也抛弃父类的某些东西以适应应用的变化,通常这是怎么做的呢?
  如果父类中某些数据成员是我不需要的,如果我能把它们抛弃,我就能轻装上阵了,不是吗?要不然我就得背一个个大包袱,最最后把我压垮了!
  虽然面向对象的“基类”和生物进化的“祖先”不是一个概念。但是是否考虑过对象应用的环境和生物生存的环境一样多变,生物通过抛弃不必要的负担来进化,进而在新环境中通过有限的资源生存下来。然而在构建基类时往往预测不到最终应用环境的变化,所以最后的对象不得不负担在那个环境里不必要的一些东西,致使最终性能不理想,或者为了达到理想的性能,又得重构以前的代码。

20

主题

84

帖子

84

积分

注册会员

Rank: 2

积分
84
发表于 2009-11-21 13:41:00 | 显示全部楼层

Re:生物在进化的过程中往往会抛弃一些先祖的东西,C++中

可以选用组合的方式,把一些会改变的东西作为独立的类,组合进来,可以参考设计模式

5

主题

53

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2009-11-21 14:20:00 | 显示全部楼层

Re:生物在进化的过程中往往会抛弃一些先祖的东西,C++中

好想法!!!

45

主题

157

帖子

169

积分

注册会员

Rank: 2

积分
169
QQ
 楼主| 发表于 2009-11-21 22:37:00 | 显示全部楼层

Re: Re:生物在进化的过程中往往会抛弃一些先祖的东西,C+

FatTony: Re:生物在进化的过程中往往会抛弃一些先祖的东西,C++中为何没有这样的机制?

可以选用组合的方式,把一些会改变的东西作为独立的类,组合进来,可以参考设计模式

  虽然组合是可以,但在构建之初,谁会想到要把构建的粒度细化到那个程度,比如把飞行的功能单独提出来,把奔跑的功能单独提出来,把游泳的功能单独提出来,应用中按需把它们组合。但当时根本不需要细化到如此程度,谁会想到要细化到这个程度呢,那样需要一个庞大而详细的构建,而这样的构建需要的时间也很多,用在当初的应用中反而不值得。

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2009-11-21 23:17:00 | 显示全部楼层

Re:生物在进化的过程中往往会抛弃一些先祖的东西,C++中

呵呵,有意思

面向对象是相对符合人认知事物过程方式的一种方法而已,讲究的是找到共性,然后再找相对共性,再特殊性,比如鸵鸟:鸟纲 -> 驼形目 -> 鸵科 -> 鸵鸟 (这才是面向对象的“继承”)
分类好不好,所属关系设计是否科学,这是这个一个逐渐学习积累的过程

而对于粒度/扩展性方面的设计,就是考验架构设计功底了,现在一般都提倡“高内聚,低耦合”,可以去看看“设计模式”

20

主题

84

帖子

84

积分

注册会员

Rank: 2

积分
84
发表于 2009-11-23 15:56:00 | 显示全部楼层

Re: Re: Re:生物在进化的过程中往往会抛弃一些先祖的东西

bluebaby9811: Re: Re:生物在进化的过程中往往会抛弃一些先祖的东西,C++中为何没有这样的机制?


  虽然组合是可以,但在构建之初,谁会想到要把构建的粒度细化到那个程度,比如把飞行的功能单独提出来...

你说得的确是设计模式的缺点,所以要合理的利用

3

主题

263

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2009-12-8 13:48:00 | 显示全部楼层

Re: Re:生物在进化的过程中往往会抛弃一些先祖的东西,C+

6spring: Re:生物在进化的过程中往往会抛弃一些先祖的东西,C++中为何没有这样的机制?

呵呵,有意思

面向对象是相对符合人认知事物过程方式的一种方法而已,讲究的是找到共性,然后再找相对共...

赞同。
路过。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 17:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表