第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

php兩種封裝類的優(yōu)缺點(diǎn)?

php兩種封裝類的優(yōu)缺點(diǎn)?

php很多內(nèi)置的類或擴(kuò)展類比較粗糙,需要人為的封裝一遍,于是有了兩種封裝方式,1直接繼承2內(nèi)部實(shí)例化如redis類,可以namespacelibclassredisextends\Redis{}也可以namespacelibclassredis{private$_redis=null;publicfunction__construct(){$this->_redis=new\Redis()}}第一種方法的優(yōu)點(diǎn)是方便,無須把所有的方法重寫一遍,但是不太好統(tǒng)一捕捉異常,第二種就是麻煩些,需要重寫一遍所有的方法,(雖然可以用魔術(shù)方法),捕捉異常方便些。大家用的哪種?為什么呢?
查看完整描述

2 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

繼承
繼承的特點(diǎn)有
?實(shí)現(xiàn)成本低
?調(diào)用者可以沿用原有的接口使用,學(xué)習(xí)成本低
?原有的功能無需任何代碼如常工作
?無法隱藏或改變?cè)械墓δ?pre>
其實(shí)你可以這么做,就好像你確實(shí)可以用鐵絲去捅插座眼一樣
改變輸入、改變輸出、改變行為都屬于改變功能,比如原來拋的異?,F(xiàn)在不拋了,原來returnfalse現(xiàn)在變異常了,原來輸入的是青椒現(xiàn)在變牛肉了等等
?正交性弱,沒有做到屏蔽父類的依賴,需要更換父類的時(shí)候顯得脆弱
常見的合適的應(yīng)用有
增加日志記錄等不影響原有邏輯的“旁路邏輯”
增加一些方法,比如原有的某一些方法a()b()c()總是連續(xù)一起調(diào)用,增加一個(gè)doABC()方法
僅限簡(jiǎn)單的少量的方法,如果要加復(fù)雜的功能或者大量的方法,還是建議用組合
增加一些靜態(tài)/工廠方法,比如newRedis(ip,port)=>OurRedis::getInstance()
一句話說就是原有行為不變,is-a的場(chǎng)景用繼承。
組合
組合的特點(diǎn)有
?實(shí)現(xiàn)成本略高,創(chuàng)建對(duì)象的過程可能會(huì)變復(fù)雜
?調(diào)用者需要理解新的接口
?需要轉(zhuǎn)發(fā)才能讓原有的功能工作
?很容易隱藏/屏蔽原有的部分功能
?正交性強(qiáng),可以通過更換內(nèi)部的對(duì)象適配不同的情況而保持外部接口不變
常見的合適的應(yīng)用有
一切涉及改變行為的需求
未來依賴會(huì)變的場(chǎng)景,比如redis會(huì)變成memcache,或者mysql會(huì)變mariadb之類
需要屏蔽細(xì)節(jié)的場(chǎng)景,比如SessionCache等需求確實(shí)用到redis,但對(duì)外肯定要屏蔽“這是個(gè)redis實(shí)現(xiàn)的session”。否則恐龍會(huì)出現(xiàn)在你背后把你腦袋咬掉
一句話就是某個(gè)功能依賴另一個(gè)功能,use-a或has-a的場(chǎng)景用組合
偏題,predis用起來還不錯(cuò),可以一試
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-16
?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果你看過任何一本設(shè)計(jì)模式的書,肯定都是推薦你使用第二種。
它們奉行的原則是:組合優(yōu)于繼承。
不過,還得看自己需求。如果系統(tǒng)的接口和你的類提供的一致,可以試試第一種。如果不一致,選擇第二種。
如果你正在為系統(tǒng)設(shè)計(jì)DB中間層,需要適配不同的數(shù)據(jù)庫,選擇第二種。
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 431 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)