介面的定義及使用(工廠設計模式)
阿新 • • 發佈:2019-02-04
為了讓使用者能得到他們想要的東西,使用者只用輸入他們能夠輸入東西,而不用輸入程式碼來得到他們想要的東西。下面寫一個簡單的例子:interface Fruit{
public void eart();
}
class Apple implements Fruit{
public void eart(){
System.out.println("吃蘋果");
}
}
class Orange implements Fruit{
public void eart(){
System.out.println("吃橘子");
}
}
class Factory{
public static Fruit getInstence(String className){
if("apple".equals(className)){
return new Apple();
}else if("orange".equals(className)){
return new Orange();
}else{
return null;
}
}
}
public class Fpp { public static void main(String[] args) {
Fruit f =Factory.getInstence("apple");//使用者輸入apple
f.eart();
}}
從上面的例子可以看出,使用者只用輸入“apple”就能呼叫Apple類中的方法,而不需要寫出“new Apple();”的語句。現在的客戶不會看見具體的子類,因為所有的介面物件都是通過 Factory類取得的,如果日後要擴充子類物件,則只需要修改Factory類即可,但是客戶的呼叫不會發生變化。
public void eart();
}
class Apple implements Fruit{
public void eart(){
System.out.println("吃蘋果");
}
}
class Orange implements Fruit{
public void eart(){
System.out.println("吃橘子");
}
}
class Factory{
public static Fruit getInstence(String className){
if("apple".equals(className)){
return new Apple();
}else if("orange".equals(className)){
return new Orange();
}else{
return null;
}
}
}
public class Fpp { public static void main(String[] args) {
Fruit f =Factory.getInstence("apple");//使用者輸入apple
f.eart();
}}
從上面的例子可以看出,使用者只用輸入“apple”就能呼叫Apple類中的方法,而不需要寫出“new Apple();”的語句。現在的客戶不會看見具體的子類,因為所有的介面物件都是通過 Factory類取得的,如果日後要擴充子類物件,則只需要修改Factory類即可,但是客戶的呼叫不會發生變化。