关于设计模式的问题

grymx1981 grymx1981 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在我的程序中有很多种类的模型,如cat,dog,fish,bird等等
每个模型又会有很多实例(instance),这些模型有很多相同的行为如eat()
但也有一些特有的属性,如cat和dog都会run()
如果我希望所有的模型都eat()的话,那我需要对每种模型都用一个for或while循环遍历
如果模型很多且eat这种行为也很多的话,会使我的程序代码变得很长
能不能通过一个循环,遍历所有的模型,调用所有模型的成员函数eat()
一种方法是实现一个公共的基类animal,之后所有的模型都从这个基类派生
cat:public animal;
dog:public animal;
……
这能解决大部分问题,但是,当我需要调用所有会run模型的时候,我还是需要通过2个循环
分别遍历cat和dog,如果还是通过再建立一个基类runAnimal来派生cat和dog的话,会不会使
程序的继承结构过于复杂从而降低性能,另外,当cat和fish有着共同的行为fly的时候又怎么办
我希望能通过一种统一的方式调用这些成员函数而不是对每种模型进行循环,请问这是不是可以实现
用什么样的设计模式可以实现,谢谢
...全文

相关推荐

评论 25
收藏 已收藏
分享
返回顶部
grymx1981
模式及实现 5,529 成员 4,167 内容