-
策略模式,瞎猜想像成,原先有不同的有熱水(AD)和冷水(Category)開關的飲水機,里面已經(jīng)裝著不同的飲料(male,或female),想喝那個就去走向那個,開啟哪個開關,現(xiàn)在改為,只要一個飲水機(通用),先選擇原料包,然后再裝入桶里(通用),這樣,下次我要另外的口味,只需選擇好原料倒進桶里即可,而不用每次喝不同飲料,就增加多一個飲水機
查看全部 -
mysqli?
什么是面向?qū)ο蠛兔嫦蜻^程?
protated
查看全部 -
面向?qū)ο蟮幕驹瓌t
查看全部 -
觀察者模式
查看全部 -
3種設計模式
查看全部 -
適配器模式
將不同的方法統(tǒng)一接口方法
查看全部 -
__set($key, $value) 成員屬性賦值時,若不存在該成員屬性則自動調(diào)用
__get($key) 獲取成員屬性時,若不存在該成員屬性則自動調(diào)用
__call($func, $patam) 調(diào)用方法時,若不存在該方法則自動調(diào)用
__callStatic($func, $patam) 調(diào)用靜態(tài)方法時,若不存在該方法則自動調(diào)用(此魔術方法也需要聲明為靜態(tài))
__toString() 當一個類被當成字符串使用時,自動調(diào)用
__invoke($param) 當一個類被當成函數(shù)使用時,自動調(diào)用
查看全部 -
單一職責
可擴展替代修改
低耦合,使用依賴注入
可配置化
面向接口而不關心實現(xiàn)
查看全部 -
什么時候用抽象類,什么時候用接口?
>方法的實現(xiàn)的區(qū)別
為什么用抽象類,不直接使用普通的基類
>抽象類不能被實例化,該場景也確實不需要實例化,不是不能,對于只是作為被繼承的基類的時候,抽象類用起來更優(yōu)雅一些。
策略模式和觀察者模式有什么區(qū)別
>其實從理念來講,都是因“異”而異,策略模式側(cè)重因人而異,選擇對應的處理策略,往往是多個策略擇其一;觀察者模式側(cè)重事件觸發(fā)時的后續(xù)處理,后續(xù)處理的邏輯往往需要設計成可以排列組合的。
查看全部 -
//?php?鏈式操作實現(xiàn)原理 //?class?普通實現(xiàn) class?DB {??? ????function?all() ????{ ????????????//?在需要鏈式操作的每個方法后面返回?calss?本身 ????????return?$this; ????} } //?__call?和?call_user_func_array?實現(xiàn) class?Foo { ????function?__call($function,?$args) ????{ ????????call_user_func_array([$this,?$function],?$args); ????????return?$this; ????} }
查看全部 -
//?spl?標準庫常用數(shù)據(jù)結(jié)構(gòu) //?棧 $stack?=?new?SplStack(); //?隊列 $queue?=?new?SplQueue(); //?最小堆 $minHeap?=?new?SplMinHeap(); //?固定長度數(shù)組 $array?=?new?SplFixedArray();
查看全部 -
//?php自帶函數(shù)?自動加載未定義的類? //?在整個php?運行上下文中只許存在一個?__autoload function?__autoload($class){ ????//?引導代碼 } //?注冊自定義的自動加載函數(shù) //?允許注冊多個 spl_autoload_register('divAutoloadFunction');
查看全部 -
ArrayAccess自動加載配置類
查看全部 -
代理模式:用于數(shù)據(jù)庫的讀寫分離。
查看全部 -
迭代器模式
類繼承implements? \Iterator
查看全部
舉報