訪問者模式

2021-08-01 19:32:54 字數 1314 閱讀 9876

我覺得employee和visitor還有乙個互為依賴的關係。

incomevisitor用於訪問員工的收入,vacationvisitor用於訪問假期長度。

員工分為老師和工程師。其中employees類擁有乙個員工列表,可以增刪員工,訪問列表時,呼叫列表中員工的accept()函式,需要傳入乙個visitor物件visitor作為引數,該函式的功能是呼叫visitor的方法visit去訪問員工的假期或工資,也需要傳入乙個employee物件作為引數。所以我覺得employee類和visitor類還有乙個互為依賴的關係。

該模式的優點顯而易見,便於訪問特定類的特定部分。

using system;

using system.collections;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 訪問者模式

public void detach(employee employee)

public void accept(visitor visitor)

}abstract class employee

set

}public double income

set

}public int vacationdays

set

}abstract public void accept(visitor visitor);

}class teacher : employee

public override void accept(visitor visitor)

}class engineer : employee

public override void accept(visitor visitor)

}abstract class visitor

class incomevisitor : visitor

}class vacationvisitor : visitor

}class program}}

張三的新工資是: 2750

李四的新工資是: 3850

張三的新假期是17

李四的新假期是19

訪問者模式

訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...

訪問者模式

行為模式中的訪問者模式 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作,一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。動機 類層次結構中可能經常由於引入新的操作,從而將型別變得脆弱。在軟體構建過程中,由於需求的改變,某些類層次結構中常常需要增...

訪問者模式

1.說明 namespace visitorspattern 象棋類 public abstract class chess public class redchess chess public class blackchess chess 在贏的情況下的狀態 public class win ac...