接口的暴漏

面向接口设计最大的一个理由就是减少耦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函数。向上转型为一个接口就可以在这里接口里放想要暴露的函数,这样我们在开发过程中暴露接口就保护了我们的方法…

你可能感兴趣的:(java基础,android)