責任鏈(Chain of Responsibility)
概念
責任鏈模式是一種行為型模式,目的是將各種處理過程的物件串接起來,並順著責任鏈依次完成任務。概念類似於資料結構的鏈結串列(Linked List),每個物件中會帶有下一個物件的指標,當物件處理完成後,會指向下一個物件繼續執行直到完成為止。
範例
//**************
//* author: cian
//* 20231104
//**************
/* Abstract base */
abstract class WorkBase
{
private readonly WorkBase nextWork = null;
public WorkBase() { }
public WorkBase(WorkBase _nextWork)
{
nextWork = _nextWork;
}
public void Excute()
{
Action();
if (nextWork != null)
{
nextWork.Excute();
}
}
protected abstract void Action();
}
class Work1 : WorkBase
{
public Work1() { }
public Work1(WorkBase _nextWork) : base(_nextWork) { }
protected override void Action()
{
Console.WriteLine("Do Work 1.");
}
}
class Work2 : WorkBase
{
public Work2() { }
public Work2(WorkBase _nextWork) : base(_nextWork) { }
protected override void Action()
{
Console.WriteLine("Do Work 2.");
}
}
class Work3 : WorkBase
{
public Work3() { }
public Work3(WorkBase _nextWork) : base(_nextWork) { }
protected override void Action()
{
Console.WriteLine("Do Work 3.");
}
}
class MainApp
{
static void Main(string[] args)
{
Work1 work = new Work1( //Do Work 1.
new Work2( //Do Work 2.
new Work3())); //Do Work 3.
work.Excute();
}
}
結語
責任鏈模式將處理過程做成單一物件,應用鏈結方式將資料流串接,如果要加新的流程只要把流程重新組合即可。
以上為學習過程的問題紀錄
如果文章有誤,歡迎前輩留言請不吝指教。
發佈留言