本章講解設計模式中責任鏈設計模式的相關知識
1.概念
試想下面的場景:某公司審批財務撥款購買裝置,小於10萬元的貨物由主任批示,大於10萬且小於100萬的貨物由經理批示,大於100萬的貨物由總經理批示。那麼如何實現這個邏輯呢?
那麼我們首先想到的就是使用傳統的if...else來進行處理,但是對於業務複雜和維護來說都是相當的困難。
為了解決上面提到的問題,我們使用責任鏈模式來更好的處理財務審批的環節。
2.責任鏈設計模式的實現思路
1)建立對應工程
2)編寫申請表類
package chain;
/** * 申請表
* @author jwang
* */
private string name;
private int money;//以萬為單位
super();
this.name = name;
this.money = money;
} public string getname()
public void setname(string name)
public int getmoney()
public void setmoney(int money)
}
3)建立責任鏈抽象類
package chain;
/** * 責任鏈抽象類
* @author jwang
* */
public abstract class leader
public void setnextleader(leader nextleader)
//處理申請
}
4)建立責任鏈具體的領導類(主任、經理、總經理)
package chain;
/** * 主任
* @author jwang
* */
public class director extends leader
@override
system.out.println("審批金額小於10萬,"+this.name+"審批通過!");
}else
}}
package chain;
/** * 經理
* @author jwang
* */
public class manager extends leader
@override
system.out.println("審批金額小於100萬,"+this.name+"審批通過!");
}else
}}
package chain;
/** * 總經理
* @author jwang
* */
public class generalmanager extends leader
@override
system.out.println("審批金額大於100萬,"+this.name+"審批通過!");
} }}
5)編寫**進行測試
package chain;
public class test
}
程式執行結果為:
設計模式之十二模板模式
模式介紹 1 模板方法模式 template method pattern 又叫模板模式 template pattern z 在乙個抽象類公開定義了執行它的方法的模板。它的子類可以按需要重寫方法 實現,但呼叫將以抽象類中定義的方式進行。2 簡單說,模板方法模式 定義乙個操作中的演算法的骨架,而將一...
java設計模式之原型設計模式
原型設計模式 顧名思義,該模式的思想就是將乙個物件作為原型,對其進行複製 轉殖,產生乙個和原物件類似的新物件 設計思路 第一步 建立乙個類prototypemode,實現cloneable介面 第二步 在prototypemode中定義shallowclone方法 淺複製物件實現 和deepclon...
java設計模式之裝飾設計模式
裝飾設計模式 裝飾設計模式就是給乙個物件增加一些新的功能,而且是動態的。要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項 設計思路 第一步 定義介面action,在介面中提供乙個方法work 第二步 定義被裝飾類child,實現介面action 第三步 定義裝飾類adult,實現...