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