面向接口设计最大的一个理由就是减少耦zhi合性。如果程序中的各个组件以接zhuan口而非具体的类相互衔接,那么对组件进行替换就轻而易举。这个特性可以使你简单的完成组件替换,而无需触及应用程序中的其他部分代码;当然,它还可以使得应用程序无需关心具体的组件实现而平滑运转。
此的松耦合机制的最大好处,就是可以为测试提供更多的便捷。通过面向接口设计,我们可以用同一个接口的虚拟实现来替代真实实现,从而使得测试的灵活度得到提升
低耦合,高内聚.
好处:易于维护,可读性高,方便扩展,前人总结之经验.
暴露接口:
就是你写好了一段程序,提供给别人一个访问的接口,别人不管你怎zhuan么实现的,调用者只需知道访问的方法及返回值就可以。如:你写的方法
public int sum(int a,int b)
{ int c = 0;
…
return c;
}
调用者不管你sum怎么实现,只需知道sum()需要两个int参数,返回值是int即可。
其中小红回调中
学生看作电脑,学生暴漏了自己的方法,计算器看作U盘,电脑在调用u盘的时候,可以传入内部类的对象引用,调用接口调用暴露的方法
举例如下案例如下:结合小红的接口回调理解。
interface A{
void method1();
}
class B{
private void f(){System.out.println("f()");}
private void g(){System.out.println("g()");}
public A getA(){
return new AImp();
}
private class AImp implements A{
public void method1(){
f();
}
public void method2(){
g();
}
}
}
public class Test{
public static void main(String[] args) {
B b = new B();
//AImp aImp = b.new AImp(); // 由于AImp是private的 error
A aImp = b.getA();// b.getA()向上转型,转型为一个接口 就可以在这里接口里放想要暴露的函数。
aImp.method1(); // 只暴露menthod1
// aImp.method2(); // The method method2() is undefined for the type A
}
}
使用接口来只暴露method1函数。向上转型为一个接口就可以在这里接口里放想要暴露的函数,这样我们在开发过程中暴露接口就保护了我们的方法…