摘要:設(shè)計模式的命名啊什么的,我基本上已經(jīng)忘記得差不多了,我就把我現(xiàn)在表述的這個東西叫做按需加載吧。
設(shè)計模式的命名啊什么的,我基本上已經(jīng)忘記得差不多了,我就把我現(xiàn)在表述的這個東西叫做按需加載吧。
需求:1.我希望有一個配置文件讀寫類,不需要修改原本這個配置文件讀寫類就可以實(shí)現(xiàn)擴(kuò)展;
2.這個擴(kuò)展是比如我原本的配置是txt格式的,但現(xiàn)在我的配置類是php或者是xml等,也可能是json
3.調(diào)用接口統(tǒng)一,不管什么類型的配置文件,我調(diào)用同樣的 一個文件配置讀寫類就可以了,防止后續(xù)的代碼很難維護(hù)。
1.首先,想到的是定義一個抽象類,不斷的繼承,通過繼承不用修改這個配置文件讀寫類;
2.但是,我就不能統(tǒng)一使用這個配置文件讀取類了,我調(diào)用的是我繼承后的這個類;
好了,廢話了那么多,我這里就來說一下我的實(shí)現(xiàn)思路,其實(shí)整個思路還是挺簡單的;
/** * 定義配置文件讀寫類,所有的配置文件讀寫調(diào)用此類就可以了,統(tǒng)一接口 */ class Config { // 讀 public function read($file,$type = "txt") { $instance = $this->getInstance($type); $instance->read($file); } // 寫 public function write($file,$type = "txt") { $instance = $this->getInstance($type); $instance->read($file); } // 刪 public function delete($file,$type = "txt") { $instance = $this->getInstance($type); $instance->read($file); } // 獲取實(shí)際操作對象實(shí)例 public function getInstance($type = "txt") { $class_name = ucfirst($type)."Config"; // 根據(jù)文件格式實(shí)例化具體的操作類 if(class_exists($class_name)) { $instance = new $class_name; } else { throw new Exception("未定義".$class_name); } if(is_subclass_of($instance,"BaseConfig") !== 1) { throw new Exception("配置文件讀寫類必須繼承BaseConfig"); } return $instance; } } // 定義一個基礎(chǔ)操作接口類,后續(xù)的文件讀寫必須繼承這個規(guī)范 abstract class BaseConfig { abstract protected function read($file) {} abstract protected function write($file) {} abstract protected function delete($file) {} } // Text配置文件讀寫類 TxtConfig extends BaseConfig { public function read($file) {} public function write($file) {} public function delete($file) {} } // 其他配置文件讀寫類。。。
以上的代碼我沒測試過,我表達(dá)的僅僅是一個思想,當(dāng)然,基于這種思想還可以設(shè)計出更加靈活,可以增加一個數(shù)組配置來定義不同的文件分別采用哪個類來讀寫,時間關(guān)系,這個問題后續(xù)有時間再更新。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21313.html
摘要:特別是在去年,已經(jīng)開始出現(xiàn)對云計算在金融服務(wù)行業(yè)的適用性的明確看法。隨著這種伙伴關(guān)系的增加,私有云服務(wù)將會成為金融服務(wù)行業(yè)的主導(dǎo)力量。云計算在金融行業(yè)的部署了將迅速增加,這些技術(shù)已經(jīng)達(dá)到其臨界點(diǎn)。 ????? 在短短幾年內(nèi),云計算已經(jīng)從神秘的技術(shù)管理模式轉(zhuǎn)變成改變業(yè)務(wù)領(lǐng)導(dǎo)評估支持業(yè)務(wù)增長的底層技術(shù)的主導(dǎo)力量。特別是在金融市場,服務(wù)供應(yīng)商既沒有明確定義云計算對金融業(yè)務(wù)的影響,一般消費(fèi)者也沒有清...
摘要:所以,我們使用來序列化第二級參數(shù),比如張家界這樣做也有個不好的地方,就是需要,然后特殊字符會變得比較丑。模塊規(guī)劃模塊與無關(guān)劃分模塊可以很好的拆解功能,化繁為簡,并且對內(nèi)隱藏細(xì)節(jié),對外暴露少量接口。 本項目地址:react-coat-helloworld react-coat 同時支持瀏覽器渲染(SPA)和服務(wù)器渲染(SSR),本 Demo 僅演示瀏覽器渲染,請先了解一下:react...
摘要:云存儲技術(shù)在安防監(jiān)控行業(yè)的發(fā)展上有著巨大的應(yīng)用前景。智能交通依靠云計算仍有困擾云計算起源于領(lǐng)域,在智能交通化日趨明顯的今天,智能交通領(lǐng)域的云計算應(yīng)用也為業(yè)內(nèi)外所普遍期待。云計算是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。監(jiān)控數(shù)據(jù)的云存儲方式安防監(jiān)控技術(shù)發(fā)展經(jīng)歷了模擬化、數(shù)字化、網(wǎng)絡(luò)化三個階段。網(wǎng)絡(luò)監(jiān)控的誕生解決了傳統(tǒng)監(jiān)控遠(yuǎn)程傳輸效果的...
摘要:感受構(gòu)建工具給前端優(yōu)化工作帶來的便利。多多益處邏輯清晰,程序注重數(shù)據(jù)與表現(xiàn)分離,可讀性強(qiáng),利于規(guī)避和排查問題構(gòu)建工具層出不窮。其實(shí)工具都能滿足需求,關(guān)鍵是看怎么用,工具的使用背后是對前端性能優(yōu)化的理解程度。 這篇主要介紹一下我在玩Webpack過程中的心得。通過實(shí)例介紹WebPack的安裝,插件使用及加載策略。感受構(gòu)建工具給前端優(yōu)化工作帶來的便利。 showImg(https://se...
摘要:核心變化從第一版發(fā)布以來,社區(qū)發(fā)生了巨大變化。這意味著系統(tǒng)必須全部重寫。暫時不會為一個即將停止支持的版本發(fā)布新版本。路由路由功能將被更新。改進(jìn)的日志系統(tǒng)日志系統(tǒng)將被改進(jìn),但具體細(xì)節(jié)尚未確定。第一階段第一階段將側(cè)重于抓住框架最重要的部分。 我們綜合考慮了社區(qū)的愿望和意見后,也對什么樣的未來對 CI 是最合適的做了一些思考,然后,CI 理事會對框架的未來做出了一些決策。預(yù)告一下,未來將會有...
閱讀 3005·2021-10-12 10:12
閱讀 3052·2021-09-22 16:04
閱讀 3287·2019-08-30 15:54
閱讀 2602·2019-08-29 16:59
閱讀 2902·2019-08-29 16:08
閱讀 868·2019-08-29 11:20
閱讀 3492·2019-08-28 18:08
閱讀 647·2019-08-26 13:43