成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php按需加載方式來增加程序的靈活度

smartlion / 2923人閱讀

摘要:設計模式的命名啊什么的,我基本上已經忘記得差不多了,我就把我現(xiàn)在表述的這個東西叫做按需加載吧。

設計模式的命名啊什么的,我基本上已經忘記得差不多了,我就把我現(xiàn)在表述的這個東西叫做按需加載吧。

需求:

1.我希望有一個配置文件讀寫類,不需要修改原本這個配置文件讀寫類就可以實現(xiàn)擴展;
2.這個擴展是比如我原本的配置是txt格式的,但現(xiàn)在我的配置類是php或者是xml等,也可能是json
3.調用接口統(tǒng)一,不管什么類型的配置文件,我調用同樣的 一個文件配置讀寫類就可以了,防止后續(xù)的代碼很難維護。

那么:

1.首先,想到的是定義一個抽象類,不斷的繼承,通過繼承不用修改這個配置文件讀寫類;
2.但是,我就不能統(tǒng)一使用這個配置文件讀取類了,我調用的是我繼承后的這個類;

實現(xiàn)思想:

好了,廢話了那么多,我這里就來說一下我的實現(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

相關文章

  • 云正成為金融服務業(yè)主流技術

    摘要:特別是在去年,已經開始出現(xiàn)對云計算在金融服務行業(yè)的適用性的明確看法。隨著這種伙伴關系的增加,私有云服務將會成為金融服務行業(yè)的主導力量。云計算在金融行業(yè)的部署了將迅速增加,這些技術已經達到其臨界點。 ????? 在短短幾年內,云計算已經從神秘的技術管理模式轉變成改變業(yè)務領導評估支持業(yè)務增長的底層技術的主導力量。特別是在金融市場,服務供應商既沒有明確定義云計算對金融業(yè)務的影響,一般消費者也沒有清...

    Richard_Gao 評論0 收藏0
  • React單頁如何規(guī)劃路由、設計Store、劃分模塊、按需加載

    摘要:所以,我們使用來序列化第二級參數(shù),比如張家界這樣做也有個不好的地方,就是需要,然后特殊字符會變得比較丑。模塊規(guī)劃模塊與無關劃分模塊可以很好的拆解功能,化繁為簡,并且對內隱藏細節(jié),對外暴露少量接口。 本項目地址:react-coat-helloworld react-coat 同時支持瀏覽器渲染(SPA)和服務器渲染(SSR),本 Demo 僅演示瀏覽器渲染,請先了解一下:react...

    13651657101 評論0 收藏0
  • 云計算在各個領域應用

    摘要:云存儲技術在安防監(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)控遠程傳輸效果的...

    blair 評論0 收藏0
  • 【前端構建】WebPack實例與前端性能優(yōu)化

    摘要:感受構建工具給前端優(yōu)化工作帶來的便利。多多益處邏輯清晰,程序注重數(shù)據(jù)與表現(xiàn)分離,可讀性強,利于規(guī)避和排查問題構建工具層出不窮。其實工具都能滿足需求,關鍵是看怎么用,工具的使用背后是對前端性能優(yōu)化的理解程度。 這篇主要介紹一下我在玩Webpack過程中的心得。通過實例介紹WebPack的安裝,插件使用及加載策略。感受構建工具給前端優(yōu)化工作帶來的便利。 showImg(https://se...

    QiShare 評論0 收藏0
  • CodeIgniter 4 建議路線圖

    摘要:核心變化從第一版發(fā)布以來,社區(qū)發(fā)生了巨大變化。這意味著系統(tǒng)必須全部重寫。暫時不會為一個即將停止支持的版本發(fā)布新版本。路由路由功能將被更新。改進的日志系統(tǒng)日志系統(tǒng)將被改進,但具體細節(jié)尚未確定。第一階段第一階段將側重于抓住框架最重要的部分。 我們綜合考慮了社區(qū)的愿望和意見后,也對什么樣的未來對 CI 是最合適的做了一些思考,然后,CI 理事會對框架的未來做出了一些決策。預告一下,未來將會有...

    sean 評論0 收藏0

發(fā)表評論

0條評論

smartlion

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<