public interface IMobilePhone {
public void call();
}
public class NokiaMPhone implements IMobilePhone{
public void call(){
}
}
public class OppoMPhone implements IMobilePhone{
public void call(){
}
}
public interface IFactory {
public IMobilePhone createNokiaPhone();
public IMobilePhone createOppoPhone();
}
public class MobilePhoneFactory implements IFactory{
public IMobilePhone createNokiaPhone(){
return new NokiaMPhone();
}
public IMobilePhone createOppoPhone(){
return new OppoMPhone();
}
}
public class Client {
public static void main(String args[]){
IFactory factory = new MobilePhoneFactory();
IMobilePhone nokia = factory.createNokiaPhone();
IMobilePhone oppo = factory.createOppoPhone();
nokia.call();
oppo.call();
}
}
就代碼上而言,工廠模式和抽象工廠模式功能上是差不多的。都通過借口遍程實現了比較好的代碼隔離。不同的地方在于factory類的組織。工廠模式對每一個產品均實現一個工廠。而抽象工廠在一個工廠類中建立多個方法返回多種產品。