職責鏈模式使多個對象都有機會處理請求
職責鏈模式的結果如下圖
Handler:定義一個處理請求的接口並實現後繼鏈
ConcreteHandler:處理負責的請求並可訪問後繼者
Client:向鏈上的具體處理者對象提交請求
在這裡先用一個簡單的例子計算所得稅來說明一下職責鏈模式在應用中的作用
先簡要的說一下計算所得稅的方法:
以成都為例:
計算金額
(工資
當你看到這樣的一個計算方式之後你心裡是不是已經有了自己的想法了?寫一系列的if語句來一條條的判斷
先說說我們的設計思想
我們可以采用職責鏈完成所得稅的計算
using System;
using System
using System
using System
namespace CompTax
{
public class CompTax
{
private double Taxp;
private double Minincome;
private static double Disc=
private CompTax NextCompTax;
public CompTax(double Minincome
{
this
this
NextCompTax = null;
}
public double Comp(double income)
{
if(income > Minincome && (NextCompTax==null|| income< NextCompTax
{
return (income
}
else
{
return NextCompTax
}
}
public static CompTax GetInstance()
{
CompTax[] cp ={
new CompTax(
new CompTax(
new CompTax(
new CompTax(
new CompTax(
new CompTax(
new CompTax(
new CompTax(
new CompTax(
};
CompTax ct=null;
for (int i =
{
if (i ==
ct = cp[i];
cp[i]
}
return ct;
}
}
}
然後在頁面上去調用
private void button
{
textBox
}
這樣我們在GetInstance靜態方法中把處理各種的可能連接了起來
在這裡我們可以把cp這個數組從配置文件中讀取
可以用到這樣的設計模式
From:http://tw.wingwit.com/Article/program/net/201311/11516.html