接口能用于代码重构吗?

白衣如花 2014-02-10 02:26:41
大概10多个form,每个都有导入文件,保存文件和另存为三个功能

想重构一下,一开始想搞一个基类,但想想这些都是功能,而非性质,接口可能更合适

但用接口的话,代码一点没少,反而多出来了一个似乎“没用”的接口

很困惑,求解答
...全文
191 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
小猪八Q 2014-02-11
  • 打赏
  • 举报
回复
引用 3 楼 u012948520 的回复:
[quote=引用 2 楼 wpfLove 的回复:] 同意楼上,重构是要代码更加灵活,可扩展,易维护,高内聚,低耦合
那么你认为如果把那三个功能提出做一个接口的话。实现了“代码更加灵活,可扩展,易维护,高内聚,低耦合”哪一条呢?[/quote] 并不是说实现了接口,就实现了这些优势,还要看你的架构设计的想法和实现,你要完成什么样的设计,达到什么样的目标,这些在实现过程中,对接口是有很大的依赖的。
youzelin 2014-02-11
  • 打赏
  • 举报
回复
引用 9 楼 u012948520 的回复:
[quote=引用 7 楼 youzelin 的回复:] 首先,高内聚 和 低耦合 是一回事。 其次,提取接口就是易于扩展,这是毫无疑问的。 再者,可扩展性大了,就便于维护,更加的灵活。
不知道这个条件下的接口易于扩展,你是怎么得出来的 这10个form没有共同父类的情况下,无论你有无接口,功能实现都是要分别去写的。这个接口根本就是为了设计而设计。你说的提升,都是只有论点没有论据的东西。[/quote] 接口的好处很大,需要了解他的强大,建议你看看《设计模式》
iloli 2014-02-10
  • 打赏
  • 举报
回复
接口是定义你类的规范用的吧,代码想少写就得用继承。 用抽象类:接口 FORM : 抽象类 这个方式吧。
白衣如花 2014-02-10
  • 打赏
  • 举报
回复
引用 13 楼 dongxinxi 的回复:
如果早期设计不足 ,利用接口来重构当然是可以的。 具体情况具体分析,回到你的例子,用父类+虚方法可能更好,交给子类自己去重写 .Net类库中还有不少抽象类:接口, 接口:一堆子接口的设计,代码会比单纯的接口多得多
十分感谢
  • 打赏
  • 举报
回复
如果早期设计不足 ,利用接口来重构当然是可以的。 具体情况具体分析,回到你的例子,用父类+虚方法可能更好,交给子类自己去重写 .Net类库中还有不少抽象类:接口, 接口:一堆子接口的设计,代码会比单纯的接口多得多
白衣如花 2014-02-10
  • 打赏
  • 举报
回复
引用 10 楼 wddw1986 的回复:
当你不需要的时候那么它就是不必要的 当你需要的时候,它就是必要的。 你可以认为我说的是废话,但你现在的情况就和第一句一样。
我感觉接口更像是早期搭建的约束。比如你得实现IDispose,就把它提出来,以免忘记了 也像是联接的通道。比如,你给我面粉和鸡蛋,我给你蛋糕 但后期再去提取的话,意义不大
emailtome 2014-02-10
  • 打赏
  • 举报
回复
cheng2005 2014-02-10
  • 打赏
  • 举报
回复
当你不需要的时候那么它就是不必要的 当你需要的时候,它就是必要的。 你可以认为我说的是废话,但你现在的情况就和第一句一样。
白衣如花 2014-02-10
  • 打赏
  • 举报
回复
引用 7 楼 youzelin 的回复:
首先,高内聚 和 低耦合 是一回事。 其次,提取接口就是易于扩展,这是毫无疑问的。 再者,可扩展性大了,就便于维护,更加的灵活。
不知道这个条件下的接口易于扩展,你是怎么得出来的 这10个form没有共同父类的情况下,无论你有无接口,功能实现都是要分别去写的。这个接口根本就是为了设计而设计。你说的提升,都是只有论点没有论据的东西。
白衣如花 2014-02-10
  • 打赏
  • 举报
回复
引用 6 楼 wanghui0380 的回复:
额,接口自己其实没有什么用,接口必须要对应管理类 Array.sort(排序接口) 数据绑定控件.datasouce(可迭代接口) 没有对应管理类的接口,其实没有任何存在滴意义。所以答案就出来了,你是否有个统一的管理类,如果没有,自然你提升为接口了也木有什么用处
是的,如果分别实现,那接口还有什么意义呢?
youzelin 2014-02-10
  • 打赏
  • 举报
回复
引用 3 楼 u012948520 的回复:
[quote=引用 2 楼 wpfLove 的回复:] 同意楼上,重构是要代码更加灵活,可扩展,易维护,高内聚,低耦合
那么你认为如果把那三个功能提出做一个接口的话。实现了“代码更加灵活,可扩展,易维护,高内聚,低耦合”哪一条呢?[/quote] 首先,高内聚 和 低耦合 是一回事。 其次,提取接口就是易于扩展,这是毫无疑问的。 再者,可扩展性大了,就便于维护,更加的灵活。
wanghui0380 2014-02-10
  • 打赏
  • 举报
回复
额,接口自己其实没有什么用,接口必须要对应管理类 Array.sort(排序接口) 数据绑定控件.datasouce(可迭代接口) 没有对应管理类的接口,其实没有任何存在滴意义。所以答案就出来了,你是否有个统一的管理类,如果没有,自然你提升为接口了也木有什么用处
youzelin 2014-02-10
  • 打赏
  • 举报
回复
引用 3 楼 u012948520 的回复:
[quote=引用 2 楼 wpfLove 的回复:] 同意楼上,重构是要代码更加灵活,可扩展,易维护,高内聚,低耦合
那么你认为如果把那三个功能提出做一个接口的话。实现了“代码更加灵活,可扩展,易维护,高内聚,低耦合”哪一条呢?[/quote] 这几条同时符合!
白衣如花 2014-02-10
  • 打赏
  • 举报
回复
引用 1 楼 laiyongxin 的回复:
重构 并不是指将代码变少 重构主要功能是将代码结构变得更清晰,易维护
真建一个接口的话,易维护我没看出来。更清晰的话,有那么点,告诉我们这些form都实现了这几个功能
白衣如花 2014-02-10
  • 打赏
  • 举报
回复
引用 2 楼 wpfLove 的回复:
同意楼上,重构是要代码更加灵活,可扩展,易维护,高内聚,低耦合
那么你认为如果把那三个功能提出做一个接口的话。实现了“代码更加灵活,可扩展,易维护,高内聚,低耦合”哪一条呢?
小猪八Q 2014-02-10
  • 打赏
  • 举报
回复
同意楼上,重构是要代码更加灵活,可扩展,易维护,高内聚,低耦合
lyx266 2014-02-10
  • 打赏
  • 举报
回复
重构 并不是指将代码变少 重构主要功能是将代码结构变得更清晰,易维护

111,093

社区成员

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

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

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