• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件开发中的理想与现实(十一)——够用就好

发布: 2008-5-27 11:10 | 作者: 不详 | 来源: blog.csdn.net | 查看: 45次 | 进入软件测试论坛讨论

领测软件测试网


面对这种情况,我也比较矛盾。的确,我可以采用不同的、更简单的方式实现这个接口(例如直接传ifstream和deque),但是扩展性呢?我昨天才说要在设计之初降低耦合,怎么能够走回头路呢?所以我坚持了,而且主动帮他补课,但我知道,要很好的理解这些事情还要点时间。
OK,无论如何,他似乎已经对上面这些技术问题有所了解,不过新的麻烦又来了。由于这个函数要实现的是分词,所以我们必须读取单个的字符,包括空格符和回车符,但是很可惜,用istream_iterator<char>得到的iterator并不能得到空格符和回车符,我们试了很多方法都不行。这回真的郁闷了……怎么办?如果要坚持这种设计,我可以考虑设计一种调用ifstream的get方法的iterator,这可行但似乎小题大做了,毕竟我并没有义务去扩展STL。麻烦麻烦麻烦!
接下来的时间里我一直在权衡,说实话,我不想放弃这种“完全没有耦合”的完美设计,但又不想在系统设计之初就开始构建自己的基础库,这似乎是一种经典的过度设计。嗯,不知不觉这一天就过去了!
回寝室的路上我好好的总结了一下自己的想法,我突然意识到一个严重的问题:ReadFile接口设计本身是不是就是一种过度设计?我真的需要如此之低的耦合度么?是的,我其实不需要这样复杂的设计!在可以预见的未来(甚至一直到项目结束),我们读取的介质都只是文件,ifstream其实完全足够;至于输出介质,我可以封装一个CWordQueue(直接把deque<string>重新定义了一次),让CReader和作坊工厂都依赖于CWordQueue,未来就算要进行某种扩展,只需要保证push_back意义不变的前提下重新实现CWordQueue就可以。
那么,新的接口可以这样表示:

    class CReade
    {
        // ...
    public:
        bool ReadFile(istream &input, CWordQueue &output);
    };

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

32/3<123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网