/**
*一个接口、简单定义一个方法test(String str),输出给定 的字符串
*/
public interface Api {
public void test(String str);
}
/**
*实现类,对接口Api的实现
*/
public class Impl implements Api {
public void test(String str) {//实现方法test
System.out.println("Now In Impl. The
input str == " + str);
}
}
//客户端
public class Client {
public static void main(String[] args) {
Api api = new Impl();
api.test("........");
}
}
针对接口的调用,基本上所有人都这样写过: Api api = new Impl();,这样写完全没有语法错误,但是却背离的接口调用的出发点和思想。因为Impl作为具体的实现类,暴露给了客户端,客户端知道了功能的具体实现者是实现类Impl,这就破坏了“封装隔离”。