场景和问题
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(); } }