21、訪問者模式(visitor)
訪問者模式把資料結構和作用於結構上的操作解耦合,使得對資料操作可相對自由地演化。訪問者模式適用於資料結構相對穩定,演算法又易變化的系統。因為訪問者模式使得演算法操作增加變得容易。若系統資料結構物件易於變化,經常有新的資料物件增加進來,則不適合使用訪問者模式。訪問者模式的優點是增加操作很容易,因為增加操作意味著增加新的訪問者。訪問者模式將有關行為集中到乙個訪問者物件中,其改變不影響系統資料結構。其缺點就是增加新的資料結構很困難。
簡單來說,訪問者模式就是一種分離物件資料結構與行為的方法,通過這種分離,可達到為乙個被訪問者動態新增新的操作而無需做其它的修改的效果。
例子:
//訪問者介面
public inte***ce visitor
//訪問者的乙個具體實現
public class myvisitor implements visitor
}
//被訪問者介面
public inte***ce subject
//被訪問者的乙個具體實現
public class mysubject implements subject
public string getsubject()
}
//測試類
public class test
}
該模式適用場景:如果我們想為乙個現有的類增加新功能,不得不考慮幾個事情:
1、新功能會不會與現有功能出現相容性問題?
2、以後會不會再需要新增?
3、如果類不允許修改**怎麼辦?面對這些問題,最好的解決方法就是使用訪問者模式,訪問者模式適用於資料結構相對穩定的系統,把資料結構和演算法解耦
設計模式(21) 訪問者模式
一 定義 訪問者模式 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用與這些元素的新操作。解釋 乙個物件,如果它的元素是固定的,那麼可以使用訪問者模式定義它們的操作,使得操作可以自由的增加或者減少而不影響系統的其它部分。二 uml類圖及基本 基本 abstrac...
21 訪問者模式(Visitor)
訪問者模式把資料結構和作用於結構上的操作解耦合,使得操作集合可相對自由地演化。訪問者模式適用於資料結構相對穩定演算法又易變化的系統。因為訪問者模式使得演算法操作增加變得容易。若系統資料結構物件易於變化,經常有新的資料物件增加進來,則不適合使用訪問者模式。訪問者模式的優點是增加操作很容易,因為增加操作...
設計模式 訪問者模式
訪問者模式是一種資料操作與資料結構分離的設計模式,訪問者模式的基本想法是,軟體系統中擁有乙個由許多物件構成的 比較穩定的物件結構,這些物件的類都擁有乙個accept方法用來接受訪問者物件的訪問。訪問者是乙個介面,它擁有乙個visit方法,這個方法對訪問到的物件結構中不同型別的元素作出不同的處理。在物...