工厂设计模式核心是解耦合
确认一个代码风格是否良好,应该遵从于以下两个标准:
1、客户端(现在为主方法)调用简单,不需要关注具体细节
2、程序代码的修改,不影响客户端的调用,即使用者可以不关心代码是否变更
想办法让客户端只看见接口而不让其看见子类,但是需要一个中间的工具类来取得接口对象
这样客户端就不再需要关心接口子类,只要通过Factory工厂类程序就可以取得接口对象
定义接口
interface Fruit {
public void eat() ;//public abstract void eat()
}
定义子类
class Apple implements Fruit{
public void eat() {
System.out.println("eat the apple!");
}
}
class Orange implements Fruit{
public void eat() {
System.out.println("eat the Oranges!") ;
}
}
定义工厂类
class Factory {
public static Fruit getInstance(String className) {
if("apple".equals(className)) {
return new Apple() ;
}else if ("orange".equals(className)) {
return new Orange() ;
}else {
return null ;
}
}
}
测试
class TestDemo {
public static void main(String[] args) {
Fruit f = Factory.getInstance("orange") ;
f.eat();
}
}