接口隔离设计不知怎么选择??

qqqq5201314 2016-04-18 09:27:09

最近在做一个业娱小软件自己用..
我把类折分成 7 8个 功能接口...现在不知道是一次集成这7 8 个接口,还是分成 2个接口 ,再集成起来..
以前试过3 4个功能接口合成一个大功能接口,再组装到类上面去..只是这样组装感觉类就没提供什么,只是包装一下接口.
也试过类直接 集成全部接口,但这样TDD时要测试的东西就太多了.一个方法可能要测试很多状态..
想问下各位大神...我该怎么选择!

如图:

...全文
246 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanbolantian 2016-04-20
  • 打赏
  • 举报
回复
关注,看高手们是如何破解
qqqq5201314 2016-04-20
  • 打赏
  • 举报
回复
引用 7 楼 jion_tang88 的回复:
第二种设计是非常不合理的。接口的目的在于将问题抽象 , 而不是将问题分解。 退回来, 接口的拆分和类的继承, 主要考虑到的时候业务的如何实现和暴露。其次才是, 测试等等。 所以我觉得你两种方案,出发点都有问题。 而且我想问下, 为什么要测试接口, 而不讲测试用例卸载服务内部呢?好奇怪
测试的时候 ,接口可以用桩来代替...再单独测试实现这个接口的类..就可以分离测试时的配置要求.我就是这么想的... 如果直接测试用例,要测试的东西很多.有时涉及到网络.文件...测试起来很容易出错,也慢..所以拆出来.. 我看 .net单元测试艺术 书上也怎么说..只是没经验,怕过度设计....
jion_tang88 2016-04-19
  • 打赏
  • 举报
回复
第二种设计是非常不合理的。接口的目的在于将问题抽象 , 而不是将问题分解。 退回来, 接口的拆分和类的继承, 主要考虑到的时候业务的如何实现和暴露。其次才是, 测试等等。 所以我觉得你两种方案,出发点都有问题。 而且我想问下, 为什么要测试接口, 而不讲测试用例卸载服务内部呢?好奇怪
qqqq5201314 2016-04-19
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
这图画的。。。
没什么经验....希望能看懂吧..
qqqq5201314 2016-04-19
  • 打赏
  • 举报
回复
引用 2 楼 wddw1986 的回复:
设计这种事情主要从业务逻辑出发,而不要在技术实现上纠结。 比如你的8个接口都是完全独立不相关的,你觉得把他们包在两个大接口里面会好吗? 如果你的接口本身就存在一种包含的关系,那很自然的就需要合并,比如:吃饺子,吃面条,吃包子,吃炒饭,你可以做一个接口叫做“吃东西”,然后把小接口包起来。
看来有必要重新思考下包含...我想拆出来主要是因为: 虽然1个场景 (来碗面条).. 可能老板会提供N种下单方式(电话,短信,前台人员)..但最终还是要厨师来煮面条.... 下单方式 和 厨师 之间会是什么关系呢???有时这两个要 共享 顾客口味偏好..这时两者间的关系会改变吗??
qqqq5201314 2016-04-19
  • 打赏
  • 举报
回复
引用 3 楼 caozhy 的回复:
关键是你为什么要搞那么多“接口”,出于什么目的。
主要是想让测试容易点....
threenewbee 2016-04-18
  • 打赏
  • 举报
回复
关键是你为什么要搞那么多“接口”,出于什么目的。
cheng2005 2016-04-18
  • 打赏
  • 举报
回复
设计这种事情主要从业务逻辑出发,而不要在技术实现上纠结。 比如你的8个接口都是完全独立不相关的,你觉得把他们包在两个大接口里面会好吗? 如果你的接口本身就存在一种包含的关系,那很自然的就需要合并,比如:吃饺子,吃面条,吃包子,吃炒饭,你可以做一个接口叫做“吃东西”,然后把小接口包起来。
Poopaye 2016-04-18
  • 打赏
  • 举报
回复
这图画的。。。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧