Java程序开发讲究面向接口编程,隐藏具体的实现类,可是如何得到接口呢?
有两种方式,一种是 类反射 , 另一种就是工厂设计模式:
工厂类的命名规范:***Factory
单例工厂方法的命名规范:getInstance()
工厂的本质是“选择实现”工厂、接口和实现类之间的技术边界:工厂只负责选择实现,实现类才做真正的实现,而接口是限定到底实现什么东西和返回什么东西,三者之间分工明确、各负其责。
public interface Inte {
public abstract void function();
}
public class Imp1 implements Inte{
@Override
public void function() {
System.out.println("实现类111");
}
}
public class Imp2 implements Inte{
@Override
public void function() {
System.out.println("实现类222");
}
}
/**
* 工厂类,提供Inte的获取
* @author BarryLee
*/
public class InteFactory {
// private static final Inte inte= new Imp1();
private static final Inte inte= new Imp2();
private InteFactory(){}
public static Inte getInstance(){
return inte;
}
}
public class Client {
@Test
public void testInte(){
Inte inte = InteFactory.getInstance();//使用的时候就是只需要得到接口的一个对象就OK了,并不需要知道他的具体实现是什么
inte.function();
}
}