[编写高质量代码:改善java程序的151个建议]建议31-在接口中不要存在实现代码

建议31:在接口中不要存在实现代码
public interface IB {
    public static final IS s = new IS() {
        public void doSth() {
            System.out.println("我在接口中实现了");
        }
    };
}
 
public interface IS {
    public void doSth();
}
 
public class Client {
    public static void main(String[] args) {
        IB.s.doSth();
    }
}
//结果打印出,我在接口中实现了
 
IB接口中声明了一个静态常量s,其值是一个匿名内部类,实现了接口IS.
这是一种不好的实现,接口是一种契约,不仅仅约束着实现者,同时也是一个保证,保证提供的服务(常量、方法)是稳定、可靠的。如果把实现代码写到了接口中,那就绑定了可能变化的因素。所以接口中虽然可以有实现,但是应该避免使用。
原文地址:https://www.cnblogs.com/akingseu/p/3464603.html