就相當於A一直要與B綁定在一起.可以完全參考Java虛擬機的設計思想
程序→JVM→適應不同的操作系統(A->C->B)
現在的客戶端不會看見具體的子類,因爲所有的接口對象都是通過Factory取得如果日後要擴充新的Fruit子類對象,則只需要修改Factroy類即可,但客戶端的調
用不會發生變化
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 Name){
if(Name.equals("apple"))
return new Apple();
else if(Name.equals("orange"))
return new Orange();
else
return null;
}
}
public class TestDemo{
public static void main(String[] args) {
Fruit f = Factory.getInstance("orange");
f.eat();
}
}