原廠模式:根據原廠模式實現的類可以根據提供的資料產生一組類中某一個類的執行個體,而這一組類有一個公用的抽象父類
//實現一個InterfaceFactory介面
package factory;
public interface InterfaceFactory {
public void say();
}
- //建立Son1類,該類用於實現InterfaceFactory並列印出son1
package factory;
public class Son1 implements InterfaceFactory {
- @Override
public void say() {
// TODO Auto-generated method stub
System.out.println("son1");
}
}
//建立Son2類,該類也用於實現InterfaceFactory介面並列印出son2
package factory;
public class Son2 implements InterfaceFactory {
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("son2");
}
}
//定義Factory類,在類中聲明一個靜態方法,用於實現Son1和Son2介面
package factory;
public class Factory {
public static InterfaceFactory createFactory(int i){
InterfaceFactory in1;
if(i==1){
//使用介面回調,將類1的對象付給介面使用
in1=new Son1();
}else{
in1=new Son2();
}
return in1;
}
}
//定義Test測試類別,該類用於實現具體調用son1或son2類中的方法
package factory;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
InterfaceFactory in1=Factory.createFactory(2);//如果傳的值是2,則會列印出son2,反之為1
in1.say();
}
}