场景和问题
Java程序开发讲究面向接口编程,隐藏具体的实现类,可是如何得到接口呢?
工厂类的命名规范:***Factory
单例工厂方法的命名规范:getInstance()
工厂的本质是“选择实现”
工厂、接口和实现类之间的技术边界:工厂只负责选择实现,实现类才做真正的实现,而接口是限定到底实现什么东西和返回什么东西,三者之间分工明确、各负其责。
代码:
这是两个模块之间的调用
Client类:
public class Client {
public static void main(String[] args) {
Api api = Module1Factory.getInstancOfApi();
api.fun();
}
}
Api接口:
public interface Api {
public abstract void fun();
}
Api接口实现类ImplApi_1:
public class ImplApi_1 implements Api {
@Override
public void fun() {
System.out.println("方式1...");
}
}
Api接口实现类ImplApi_2:
public class ImplApi_2 implements Api {
@Override
public void fun() {
System.out.println("方式2...");
}
}
module2的工厂类 Module1Factory:
public class Module1Factory {
//封掉构造函数
private Module1Factory(){
}
//通过工厂方法获取Api接口的实现类 对象实例
public static Api getInstancOfApi(){
return new ImplApi_2();
}
}