- 詳見(jiàn)實(shí)例講解iOS應(yīng)用的設(shè)計(jì)模式開(kāi)發(fā)中的Visitor訪(fǎng)問(wèn)者模式
- 摘錄如下:訪(fǎng)問(wèn)者模式(Visitor),表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作。它使你可以在不改變各元素的類(lèi)的前提下定義作用于這些元素的新操作。
訪(fǎng)問(wèn)者模式使用場(chǎng)景
訪(fǎng)問(wèn)者模式的目的是要把處理從數(shù)據(jù)結(jié)構(gòu)分離出來(lái)。很多系統(tǒng)可以按照算法和數(shù)據(jù)結(jié)構(gòu)分開(kāi),如果這樣的系統(tǒng)有比較穩(wěn)定的數(shù)據(jù)結(jié)構(gòu),又有易于變化的算法的話(huà),使用訪(fǎng)問(wèn)者模式就是比較合適的,因?yàn)樵L(fǎng)問(wèn)者模式使得算法操作的增加變得容易。
訪(fǎng)問(wèn)者模式的優(yōu)點(diǎn)就是增加新的操作很容易,因?yàn)樵黾有碌牟僮骶鸵馕吨黾右粋€(gè)新的訪(fǎng)問(wèn)者。訪(fǎng)問(wèn)者模式將有關(guān)的行為集中到一個(gè)訪(fǎng)問(wèn)者對(duì)象中。
那其實(shí),訪(fǎng)問(wèn)者模式的缺點(diǎn)也就是使增加新的數(shù)據(jù)結(jié)構(gòu)變得苦難了。所以,GoF四人中的一個(gè)作者增經(jīng)說(shuō)過(guò),‘大多時(shí)候你并不需要訪(fǎng)問(wèn)者模式,但當(dāng)一旦你需要訪(fǎng)問(wèn)者模式的時(shí)候,那就是真的需要它了'。