/** * 元件
*/inte***ce icomponent
package com.study.visitor
class cpu : icomponent
}
package com.study.visitor
class screen : icomponent
}
package com.study.visitor
inte***ce ivisitor
package com.study.visitor
/** * 用學生的身份設計
*/class companyvisitor : ivisitor
override
funvisitorscreen
(screen: screen)
}
package com.study.visitor
/** * 用公司的身份設計
*/class companyvisitor : ivisitor
override
funvisitorscreen
(screen: screen)
}
package com.study.visitor
/** *
* 定義和型別
定義:封裝作用於某資料結構(如list/set/map)中的各元素的操作
可以在不改變各元素的類的前提下,定義作用於這些元素的各種操作
型別:行為型
適用場景
乙個資料結構(如list/set/map)包含很多態別物件
資料結構和資料操作分離
優點增加新的操作很容易,即增加乙個新的訪問者
缺點增加新的資料結構很困難
具體元素變更比較麻煩
*/fun
main()
訪問者模式
訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...
訪問者模式
行為模式中的訪問者模式 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作,一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。動機 類層次結構中可能經常由於引入新的操作,從而將型別變得脆弱。在軟體構建過程中,由於需求的改變,某些類層次結構中常常需要增...
訪問者模式
1.說明 namespace visitorspattern 象棋類 public abstract class chess public class redchess chess public class blackchess chess 在贏的情況下的狀態 public class win ac...