欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

實踐GoF的設(shè)計模式:訪問者模式

摘要:訪問者模式的目的是,解耦數(shù)據(jù)結(jié)構(gòu)和算法,使得系統(tǒng)能夠在不改變現(xiàn)有代碼結(jié)構(gòu)的基礎(chǔ)上,為對象新增一種新的操作。

本文分享自華為云社區(qū)《【Go實現(xiàn)】實踐GoF的23種設(shè)計模式:訪問者模式》,作者:元閏子 。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了華安免費建站歡迎大家使用!

簡介

GoF 對訪問者模式(Visitor Pattern)的定義如下:

Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates.

訪問者模式的目的是,解耦數(shù)據(jù)結(jié)構(gòu)和算法,使得系統(tǒng)能夠在不改變現(xiàn)有代碼結(jié)構(gòu)的基礎(chǔ)上,為對象新增一種新的操作。

上一篇介紹的迭代器模式也做到了數(shù)據(jù)結(jié)構(gòu)和算法的解耦,不過它專注于遍歷算法。訪問者模式,則在遍歷的同時,將操作作用到數(shù)據(jù)結(jié)構(gòu)上,一個常見的應(yīng)用場景是語法樹的解析。

UML 結(jié)構(gòu)

場景上下文

在簡單的分布式應(yīng)用系統(tǒng)(示例代碼工程)中,db 模塊用來存儲服務(wù)注冊和監(jiān)控信息,它是一個 key-value 數(shù)據(jù)庫。另外,我們給 db 模塊抽象出 Table 對象:

// demo/db/table.go
package db
// Table 數(shù)據(jù)表定義
type Table struct {
    namestring
    metadata        map[string]int // key為屬性名,value屬性值的索引, 對應(yīng)到record上存儲
    records         map[interface{}]record
 iteratorFactory TableIteratorFactory// 默認(rèn)使用隨機(jī)迭代器
}

分享標(biāo)題:實踐GoF的設(shè)計模式:訪問者模式
當(dāng)前路徑:http://chinadenli.net/article24/dsoicce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、ChatGPT、云服務(wù)器、標(biāo)簽優(yōu)化、網(wǎng)站排名、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作