官术网_书友最值得收藏!

1.4 VFS框架設(shè)計(jì)思想

前面介紹了虛擬文件系統(tǒng)(VFS)的基礎(chǔ)定義,以及Apache VFS和Tiny VFS。計(jì)算機(jī)技術(shù)發(fā)展的早期階段,還沒(méi)有網(wǎng)絡(luò)概念,文件存儲(chǔ)只能在本地。后來(lái)隨著局域網(wǎng)和互聯(lián)網(wǎng)的出現(xiàn),程序員可以通過(guò)網(wǎng)絡(luò)協(xié)議遠(yuǎn)程訪問(wèn)文件;而現(xiàn)在云存儲(chǔ)的興起,使得文件的操作更加簡(jiǎn)單:程序員甚至不用關(guān)心文件的真實(shí)物理位置,通過(guò)虛擬的云地址就可以完成所有操作。如果針對(duì)不同的文件來(lái)源就要在程序中編寫相應(yīng)的處理代碼,勢(shì)必會(huì)導(dǎo)致開發(fā)成本上升,維護(hù)升級(jí)困難,因此虛擬文件系統(tǒng)(VFS)的出現(xiàn)是計(jì)算機(jī)技術(shù)發(fā)展的必然結(jié)果。

VFS框架的出現(xiàn),有如下幾點(diǎn)優(yōu)點(diǎn):

□ 統(tǒng)一文件資源的訪問(wèn)方式,簡(jiǎn)化應(yīng)用資源的開發(fā)。程序員不用關(guān)心文件是本地文件、FTP遠(yuǎn)端文件還是第三方運(yùn)營(yíng)商提供的云存儲(chǔ)文件。

□ 屏蔽應(yīng)用層通信協(xié)議和底層文件格式的差異,甚至隱藏不同客戶端的代碼差異。

□ 采用接口方式定義VFS,也方便以后對(duì)新協(xié)議的擴(kuò)展,符合軟件開發(fā)的開閉原則。

對(duì)一個(gè)虛擬文件系統(tǒng)而言,最基礎(chǔ)的概念有三點(diǎn):VFS管理器、SchemaProvider模式提供者和FileObject虛擬文件訪問(wèn)接口。三者關(guān)系如圖1-3所示。

圖1-3 VFS框架設(shè)計(jì)圖

程序員可以通過(guò)VFS管理器獲取指定路徑的FileObject對(duì)象,但是實(shí)際上VFS自己不做具體的事情,它委托注冊(cè)在VFS中的模式提供者做實(shí)際的解析,并將解析到的結(jié)果,也就是虛擬文件對(duì)象返回給調(diào)用者。

VFS管理器類似于總包,模式提供者相當(dāng)于分包,F(xiàn)ileObject對(duì)象就是最終結(jié)果。總包(VFS管理器)本身不做任何具體工作,它負(fù)責(zé)管理和對(duì)外對(duì)接,所有的具體工作都是分配給自己的分包(模式提供者)完成。接到一個(gè)任務(wù),它會(huì)依次詢問(wèn)每個(gè)模式提供者是不是其職能范圍:如果是,則委派這個(gè)分包完成工作任務(wù);不是的話,就問(wèn)下一個(gè)模式提供者;萬(wàn)一問(wèn)到最后也沒(méi)有模式提供者能完成的話,VFS管理器就會(huì)使用默認(rèn)的模式提供者去完成工作任務(wù)。

開發(fā)者可以通過(guò)擴(kuò)展并把擴(kuò)展的新的模式提供者注冊(cè)到VFS管理器,然后就可以通過(guò)VFS管理器解析特定來(lái)源的文件了。

主站蜘蛛池模板: 宣化县| 来安县| 桐乡市| 福海县| 宝应县| 海南省| 得荣县| 株洲市| 万州区| 巴南区| 乐安县| 台安县| 罗田县| 松潘县| 修文县| 景洪市| 铁岭县| 九龙城区| 扎赉特旗| 临泉县| 西贡区| 屏东县| 独山县| 五指山市| 郴州市| 沁水县| 灵川县| 昌黎县| 达州市| 永定县| 延庆县| 聂荣县| 桐城市| 旺苍县| 林甸县| 萨嘎县| 邵阳县| 安远县| 金山区| 通海县| 常熟市|