Eclipse
观察下面程序:定义一个接口interface Fruit{ public void eat();}主方法实际上就相当于一个客户端;
class Apple implements Fruit{ public void eat(){ System.out.println('吃苹果');}}
class Orange implements Fruit { public void eat(){ System.out.println('吃橘子');}}public class interfaceDemo(){ public static void main(String args[]){ Fruit f=new Apple(); f.eat();}}实现Fruit接口,如果此时需要更换一个子类,子必须要修改主方法
工厂设计模式:interface Fruit{ public void eat();}class Apple implements Fruit{ public void eat(){ System.out.println('吃苹果');}}class Orange implements Fruit { public void eat(){ System.out.println('吃橘子');}}
class Factory{ public static Fruit getInstance(String className){ Fruit f=null; if(“apple”.equals(className)){ f=new apple(); } if('orange'.equals(className)){ f=new Orange(); } return f;}}
public class interfaceDemo{ public static void main{String args[]}{ Fruit f=null;定义 接口对象 f =Factory.getInstance('apple'); f.eat(); }}程序在接口和子类之间加入一个过渡端,通过此过度端取得接口的实例化对象一般都会称这个过度端为工厂类;