Java 设计或发现界面的最佳方法是什么

Java 设计或发现界面的最佳方法是什么,java,c#,Java,C#,假设你有一些问题需要解决。作为推荐实践,最好使用接口(我不是指GUI,我是指接口或抽象类)。你可以用两种方法(我很确定,但现在我注意到我用了两种方法): 预先设计接口,然后实现它们 实现类,然后在类的基础上发现接口 我个人更喜欢第二种方法,但在与其他开发人员讨论时,我注意到有人更喜欢第一种方法。我可以说,出于以下原因,我更喜欢第二种方法: 我可以更快地编写代码 我避免使用不必要的代码(我永远不会使用的代码) 在这种情况下,接口更贴近“真实”生活 对我来说更方便。 我想听听其他建议,为什么有人喜

假设你有一些问题需要解决。作为推荐实践,最好使用接口(我不是指GUI,我是指接口或抽象类)。你可以用两种方法(我很确定,但现在我注意到我用了两种方法):

  • 预先设计接口,然后实现它们
  • 实现类,然后在类的基础上发现接口
  • 我个人更喜欢第二种方法,但在与其他开发人员讨论时,我注意到有人更喜欢第一种方法。我可以说,出于以下原因,我更喜欢第二种方法:

    • 我可以更快地编写代码
    • 我避免使用不必要的代码(我永远不会使用的代码)
    • 在这种情况下,接口更贴近“真实”生活
    • 对我来说更方便。 我想听听其他建议,为什么有人喜欢选项1或选项2。 正如我通常用C#编写代码一样,但AFAIK java也有这样的想法

    3。首先设计接口,然后编写实现类,最后发现所有接口都是错误的。我认为最好是在设计接口和实现类之间进行比较?真正地这两者都是错误的。设计类和设计接口并重复,直到稳定!对于我来说,任何真正复杂的东西都需要处理各种各样的用例,而这些用例是不可能提前全部预见到的,接口必须被发现。我倾向于考虑我是否做了正确的迭代需要多少迭代来实现稳定性,以及应用每一次迭代是多么困难。对我来说,诀窍是保持依赖关系同样不稳定、粗糙且数量最少:足够“发现”改进,但足够简单,可以对仍然非常简单的代码(其中很多将是测试代码)进行一些最小的级联更改。