Gof 訪問者模式

2021-10-18 14:03:14 字數 2469 閱讀 3934

繼續打卡設計模式

今天來聊一下的是訪問者模式

將觀眾分為男人和女人,對歌手進行測評,當看完某個歌手表演後,得到他們對該歌手不同的評價(評價 有不 同的種類,比如 成功、失敗 等)

這個問題的關鍵是說對於乙個歌手評價而言它的結果是有兩個資料屬性來共同決定

首先我們分析一下這個問題肯定是需要 男人和女人這個類的。抽象一點就是乙個人以及對於歌手的評價也是包含男人和女人的評價

所以我們先寫乙個評價的抽象類

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*/public abstract class action

那麼類裡面的形參男人和女人我們

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*/public abstract class person

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*/public class man extends person

}

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*/public class woman extends person

}

那現在我們的action評價的子類來分別重寫裡面的抽象方法

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*/public class success extends action

@override

public void getwomanresult(woman woman)

}

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*/public class fail extends action

@override

public void getwomanresult(woman woman)

}

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*/public class wait extends action

@override

public void getwomanresult(woman woman)

}

對於男人女人可能有多個情況我們建立乙個物件結構體

/**

* @author: 德鑫

* description:

* @date: 2021/01/27

*///物件結構體 表示這個可能管理很多人包括男人和女人

public class objectstructure

//移除

public void detach(person p)

//顯示測評情況

public void display(action action)

}}

最後寫乙個客戶端測試

/**

* @author: 德鑫

* description:訪問者模式封裝了一些作用於某種資料結構的各元素的操作。它可以在不改變原有資料結構的前提下定義作用

*於這些元素操作

*2) 主要將資料結構與資料操作分離,解決 資料結構和操作耦合性問題

*3) 訪問者模式的基本工作原理是:在被訪問的類裡面加乙個對外提供接待訪問者的介面

*4) 訪問者模式主要應用場景是:需要對乙個物件結構中的物件進行很多不同操作(這些操作彼此沒有關聯),同時需要避免讓這些操作"汙染"這些物件的類,可以選用訪問者模式解決

* @date: 2021/01/27

*/public class client

}

訪問者模式封裝了一些作用於某種資料結構的各元素的操作。它可以在不改變原有資料結構的前提下定義作用於這些元素操作

主要將資料結構與資料操作分離,解決 資料結構和操作耦合性問題

訪問者模式的基本工作原理是:在被訪問的類裡面加乙個對外提供接待訪問者的介面

訪問者模式主要應用場景是:需要對乙個物件結構中的物件進行很多不同操作(這些操作彼此沒有關聯),同時需要避免讓這些操作"汙染"這些物件的類,可以選用訪問者模式解決

訪問者模式

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

訪問者模式

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

訪問者模式

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