工厂设计模式
子类被接口实例化后,调用被子类覆写过的方法,但是存在一个问题:
主方法实际上相当于一个客户端,如果此时需要更换一个子类,则必须修改主方法。
JVM原理:所有的程序只认JVM,每个JVM会根据所在的操作系统不同自动进行设置。 即程序--JVM--操作系统。
所以我们可以类似地,在接口和具体子类间加入一个过渡端,通过此过渡端取得接口实例。一般这个过渡端为工厂类。
class Factory{ public static Fruit getInstance(String className){ Fruit f = null; if("apple" .equals(className)){ f = new Apple(); } return f; } }; public class FactoryDemo { public static void main(String[] args){ Fruit f = null; f = Factory. getInstance("apple"); f.eat(); } }