[编写高质量代码:改善java程序的151个建议]建议31-在接口中不要存在实现代码
2013-12-09 07:52
731 查看
建议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.
这是一种不好的实现,接口是一种契约,不仅仅约束着实现者,同时也是一个保证,保证提供的服务(常量、方法)是稳定、可靠的。如果把实现代码写到了接口中,那就绑定了可能变化的因素。所以接口中虽然可以有实现,但是应该避免使用。
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.
这是一种不好的实现,接口是一种契约,不仅仅约束着实现者,同时也是一个保证,保证提供的服务(常量、方法)是稳定、可靠的。如果把实现代码写到了接口中,那就绑定了可能变化的因素。所以接口中虽然可以有实现,但是应该避免使用。
相关文章推荐
- [编写高质量代码:改善java程序的151个建议]建议31-在接口中不要存在实现代码
- [编写高质量代码:改善java程序的151个建议]建议33:不要覆写静态方法
- [编写高质量代码:改善java程序的151个建议]建议79 HashMap中的key不要重复
- [编写高质量代码:改善java程序的151个建议]建议35:不要在类中初始化其他类
- [编写高质量代码:改善java程序的151个建议]建议35:不要在类中初始化其他类
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝
- [编写高质量代码:改善java程序的151个建议]建议88 用枚举实现工厂方法模式更简单
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝
- [编写高质量代码:改善java程序的151个建议]建议72 生成字列表后不要再操作原列表
- [编写高质量代码:改善java程序的151个建议]建议33:不要覆写静态方法
- 编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议31~35)
- [编写高质量代码:改善java程序的151个建议]建议62 警惕数组的浅拷贝
- 编写高质量代码改善java程序的151个建议——导航开篇
- [编写高质量代码:改善java程序的151个建议]建议58 强烈建议使用UTF-8编码
- [编写高质量代码:改善java程序的151个建议]建议76 集合运算时使用更优雅的方式
- 读编写高质量代码--改善java程序的151个建议笔记