JAVA設計模式(十二)設計模式之責任鏈設計模式

2021-09-24 12:14:13 字數 1911 閱讀 3557

本章講解設計模式中責任鏈設計模式的相關知識

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,實現...