经验笔记 - 分析和实现需求的本质以调高函数的重用性,遵循关心最少原则和依赖抽象原则

这都是我的经验之谈,不具备什么权威性,也欢迎指正。

直接从需求开始吧

需求是根据计算一件游戏装备的价值

拿到需求的第一反应是:

GetEquipPrice(Equip equip);

分析需求本质的结果是根据游戏装备的品质和等级计算装备的价值,所以改良成这样:

GetEquipPrice(int quality,int lv);

为了方便调用,可以进行一层包装:

GetEquipList(Type typt,int slot);//包装一层
GetEquipList(Hero hero);

后来的需求:当英雄有可穿戴的装备时,小红点提示玩家

同样很简单,只要判断Get出来的List为不为空,问题就解决了。

但这样做了很多无用功,只要能获取到头一件装备的时候,for就可以break了,但第一个需求得把整个for运行完

这得消耗多少的性能,事实上,我确实又多写一个函数来优化

可以总结出经验:性能面前,什么原则都不适用

仍然有解决办法,只是我没做到极致,进一步分析需求:根据槽位和种类获取背包中的前count件装备

//当count=-1的时候获取全部,甚至能把排序也做了
GetEquipList(Type typt,int slot,int count=-1, Comparison com=null); 

同样,一个函数解决了两个需求,同样,也面临性能的问题

for里面我不得不多一步去判断当前获得的数量等不等于count,如果这个判断很复杂,对于第一个需求来说,也是不必要的开销

如果追求性能,学一下印度电工也无可厚非。

今天先总结到这吧。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部