【问题标题】:JAVA : Interface naming practices and guidelinesJAVA:接口命名实践和指南
【发布时间】:2014-05-27 10:19:25
【问题描述】:

需要有关 Java 接口命名模式的简要答案。

为什么大多数 JAVA 接口名称后缀都有“able”?

例如

java.io.Serializable

java.lang.Cloneable

java.lang.Comparable

java.lang.Runnable

我已经探索并阅读了它,因为它是为了识别行为、动作和能力等。但并没有完全理解。任何人都可以提供一些有用的示例场景。

最好的!

阿伦

【问题讨论】:

  • 我不会说大多数接口都以“能够”结尾。只是那些允许班级成为somethinged 的人。当它们用于something 其他东西的类时,有很多结尾“或”或“er”。这更像是一个英语语言问题,而不是一个特定于编程的问题

标签: java interface naming-conventions naming


【解决方案1】:

这些 *able 接口定义了我们可以对该类的实例执行的操作。

例如,实现 java.lang.Comparable 的类表示该类的实例可以相互比较。同样,实现 java.lang.Runnable 的类表明该类的实例可以由 java.lang.Thread 运行。

【讨论】:

    【解决方案2】:

    因为实现该接口的类“能够”完成特定的事情。例如。实现Serializable 的类的对象“能够”序列化。其余的例子也是如此。

    【讨论】:

    • 更像是“您可以对对象执行特定的操作
    【解决方案3】:

    继承遵循 IS-A 关系。这些接口用作将在方法中处理的对象的顶级父级。

    例如假设我们要编写一个方法,该方法接受任何可以克隆的对象,并拒绝所有其他对象。

    public void doSomethingWithClonableObjects(Clonable c){
      ...
    }
    

    以able结尾这样的界面,使英语流畅,从而提高理解。 即,此方法适用于所有可克隆的对象。

    或者,如果一个对象IS是可克隆的,它将被接受。

    对于任何实现 Clonable 接口的对象,我们可以肯定地说这个对象IS Clonable。

    【讨论】:

    • Inheritance follows IS-A relationship ,但是 HAS-A 呢? HAs-A 关系中是否没有遵循接口?
    猜你喜欢
    • 2011-11-05
    • 2011-06-09
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    相关资源
    最近更新 更多