亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在php項目中 各位兄臺是怎么優雅的調用工具類庫的呢?

在php項目中 各位兄臺是怎么優雅的調用工具類庫的呢?

楊__羊羊 2019-04-16 20:26:09
最近一直在糾結項目分層架構的問題其中最糾結的就是在項目中如何引入第三方類庫比如說有個msg控制器要發送郵件classMsgConstrollerextendsConstroller{publicfunctionsend(){$email=newemail([options....]);$email->send();}}這個控制器通過引入一個email工具類實現了發送email的功能但是如果同時要發送短信呢classMsgConstrollerextendsConstroller{publicfunctionsend(){$email=newemail([options....]);$sms=newsms([options....]);$email->send();$sms->send();}}這樣感覺很不優雅所以我想到了使用個服務層來解決classMsgConstrollerextendsConstroller{publicfunctionsend(){$msg=service('Msg');//實例化一個Msg服務類$msg->send('message,email,sms');//通過send接口傳的參數會同時發送站內信、郵件、短信}}但是這樣又會把new操作給轉移到服務層感覺還不是怎么理想那么大家有什么比較簡單優雅的解決方案嗎?
查看完整描述

2 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

sms和email等同時實現send()方法接口,再用Composite設計模式組合起來怎樣?
classMsgConstrollerextendsConstroller{
publicfunctionsend(){
$msg=newMsgComposite();
$msg->add(newemail());
$msg->add(newsms());
$msg->send();
}
}
new操作現在框架好像都喜歡用統一的ServiceLocator解決,方便統一替換利于單元測試
                            
查看完整回答
反對 回復 2019-04-16
  • 2 回答
  • 0 關注
  • 321 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號