java設計模式 -------- 創建模式 之 工廠方法模式
來源:程序員人生 發布時間:2014-10-08 18:28:27 閱讀次數:2440次
本文是自己學習所做筆記,歡迎轉載,但請注明出處:http://blog.csdn.net/jesson20121020
上節的簡單工廠模式有一個問題就是,類的創建依賴工廠類,也就是說,如果想要拓展程序,必須對工廠類進行修改,這違背了閉包原則,所以,從設計角度考慮,有一定的問題,如何解決?就用到工廠方法模式,創建一個工廠接口和創建多個工廠實現類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的代碼。
依然用上節的例子,四則運算,采用工廠方法模式,各部分的關系如下圖:
工廠方法模式應用步驟:
1.創建四則運算的共同接口(同簡單工廠模式例子):
public interface Operator{
public double Operate(double d,double e);
}
2.
創建加減實現類(其他的類可以自己加):
public class AddOperator implements Operator{
@Override
public double Operate(double a, double b) {
// TODO Auto-generated method stub
return a + b;
}
}
public class SubOperator implements Operator {
@Override
public double Operate(double a, double b) {
// TODO Auto-generated method stub
return a - b;
}
}
3.
提供一個工廠接口:
public interface OperatorFactory {
public Operator createOperator();
}
4. 創建兩個工廠類:
public class AddFactory implements OperatorFactory {
@Override
public Operator createOperator() {
// TODO Auto-generated method stub
return new AddOperator();
}
}
public class SubFactory implements OperatorFactory {
@Override
public Operator createOperator() {
// TODO Auto-generated method stub
return new SubOperator();
}
}
5. 測試類:
public class FactoryTest {
public static void main(String[] args) {
OperatorFactory factory = new AddFactory();
Operator oper = factory.createOperator();
double result = oper.Operate(3.6,4.8);
System.out.println(result);
}
}
這樣,以后在擴展程序功能時,如想增加乘法的功能,則只需做一個實現類,實現Operator接口,同時做一個工廠類,實現OperatorFactory接口,就OK了,而無需去改動現成的代碼。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈