行為型設計模式

2021-09-06 06:53:39 字數 1629 閱讀 9104

職責鏈模式:使用多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。

職責鏈模式結構圖

abstarct class handler處理請求",

this.gettype().name,request); ---->轉移到下一位

class concretehadler2:public hadler處理請求",

this.gettype().name,request);

}else if(successor!=null)處理請求",

this.gettype().name,request);

}else if(successor!=null);

foreach(int request in request)被訪問",concreteelementa.gettype().name,this.gettype().name);

public override void visitconcreteelementb(concreteelementb concreteelementb)被訪問",concreteelementb.gettype().name,this.gettype().name);

class concretevisitor2:visitor

class concreteelementb:element

class objectstructure{

private ilistelements=new list();

public void attach(element element){

elements.add(element);

public void detach(element element){

elements.remove(element);

public void accept(visitor visitor){

foreachelement e in elements(){

e.accept(visitor);

static void main(){

objectstructure -new objectstructure();

o.attach(new concreteelementa);

o.attach(new concreteelementb);

concretevisitor1 v1=new concretevisitor1();

concretevisitor2 v2=new concretevisitor2();

o,accept(v1);

o.accept(v2);

consloe.read();

訪問者模式適用於資料結構相對穩定的系統,它把資料結構和作用於結構上的操作之間的耦合解脫開,使得操作集合可以相對自由的演化。

訪問者模式是要把處理資料從結構分離出來『。其實它的最大優點就是增加新的操作很容易,因為增加新的操作就意味著增加乙個新的訪問者。訪問者模式將有關的行為集中調乙個訪問者物件中。

缺點:使得、增加新的資料結構變得困難了。

行為型 設計模式

訪問者模式 資料結構相對穩定,對資料操作可變性強,資料結構提供accept方法接收乙個visitor,不同的visitor有不同的訪問此類資料結構的方法,乙個visitor多個資料 beandefinitionvisitor 或多個visitor乙個資料 模板模式 將演算法的基本步驟抽象到父類,子類...

設計模式行為型

一 責任鏈模式 這種模式中,有傳送者和接收者。通常,每個接收者都包含對另乙個接收者的引用,形成一條鏈,如果乙個接收者不能處理該請求,那麼它會把相同的請求傳給下乙個接收者,依次類推。這種模式將請求的傳送者和接收者解耦,但是不能保證請求一定被接收。使用場景是有1.多個物件可以處理同乙個請求,具體哪個物件...

行為型設計模式 游標模式

using system using system.collections.generic using system.linq using system.text public inte ce ienumerator 原 是object型別 bool movenext void reset publ...