当前位置:  开发笔记 > 编程语言 > 正文

接口和版本控制

如何解决《接口和版本控制》经验,为你挑选了2个好方法。

我正在设计一个新的系统,我有很多接口随着系统的发展而增长.命名此接口的最佳做法是什么

ISomethingV01
ISomethingV02
etc

我这样做

public interface ISomething{
      void method();
}

然后我必须添加方法2所以现在我做什么?

public interface ISomethingV2:ISomething{
      void method2();
}

或者以其他方式?



1> rp...:

我认为你是在超越接口.

梅耶和马丁告诉我们:"开放延期但关闭修改!"

然后Cwalina(等人)重申:

来自框架设计指南......

通常,类是暴露抽象的首选构造.接口的主要缺点是,当允许API的发展时,它们比类更不灵活.一旦发布了接口,其成员集将永久固定.对接口的任何添加都会破坏实现接口的现有类型.

课程提供了更大的灵活性.您可以将成员添加到已发布的类中.只要该方法不是抽象的(即,只要您提供该方法的默认实现),任何现有的派生类都将继续保持不变.

替代文字



2> Garo Yeriaza..:

理想情况下,您不应经常更改界面(如果有的话).如果确实需要更改界面,则应重新考虑其用途,并查看原始名称是否仍适用于该界面.

如果您仍然认为接口将发生变化,并且接口更改很小(添加项目)并且您可以控制整个代码库,那么您应该只修改接口并修复所有编译错误.

如果您的更改是对接口使用方式的更改,那么您需要创建一个单独的接口(很可能使用不同的名称)来支持该替代使用模式.

即使您最终创建了ISomething,ISomething2和ISomething3,接口的使用者也很难弄清楚接口之间的差异.什么时候应该使用ISomething2,什么时候应该使用ISomething3?然后你必须去淘汰ISomething和ISomething2的过程.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有