1.工廠模式
在處理對應多平台支付的業務問題的時候,
在page層通過不同的type呼叫data層不用平台的支付邏輯。
secure_base.clase.php作為父類實現分發和type的定義和公共方法構造等,可以自行設計。
switch($source)
}}
總結:在資料返回時經常用到,把數值型別的值轉換成展示的漢字並且統一管理。
3.外觀模式
在date層呼叫dao層的時候,採用的外觀模式,把需要用到的資料表類例項化後統一使用並封住成模型,提供給page層呼叫。
class facade
public function methoda()
}class subsytem1
}
4.建造者模式
在寫爬蟲的時候應用的設計模式,通過設定成員屬性,呼叫方法時實現不同的檢測,最常用的就是debug模式 $obj->setdebug(1);
通過相應的set函式寫入不同配置,從而實現功能。
$config=array(
"type"=>"shirt",
"size"=>"xl",
"color"=>"red",
);//沒有使用bulider以前的處理
$oproduct=new product();
$oproduct->settype($config['type']);
$oproduct->setsize($config['size']);
$oproduct->setcolor($config['color']);
總結:可以用來檢測鉤子,通過鉤子函式來實現檢測不同的設定,實現不同功能或者豐富原有的功能。例如setheaser,setcookie,setdebug等
5.裝飾模式
在丟擲錯誤的時候通過裝飾模式來實現返回不同格式的錯誤訊息
---------->ps.編碼時盡量自己丟擲錯誤來冗錯並且一定要記錄相應log用來除錯,在寫底層框架的時候錯誤丟擲的策略一定要規劃好。
現在對exception進行封裝和改造實現自定義log和返回自定義err訊息,也可以配置應用的錯誤**對映conf實現code和msg
可以在建構函式的時候通過type呼叫相應的修飾方法(過濾html,轉義json,xml等等)
dome:
abstract class messageboardhandler
abstract public function filter($msg);
}class messageboard extends messageboardhandler
}class messageboard2 extends messageboardhandler
}
$obj=new messageboard();echo$obj->filter("一定要學好裝飾模式
");
總結:在對於丟擲提示資訊的時候實現多元化的應用而不是單一的返回方式,用來支撐不同的資料需要。**********==2016.10.28***************====個人理解PHP設計模式
1,外觀模式原理 a類 b類 c類 然後在d類裡面呼叫a類b類c類,然後在e類裡面呼叫d類,這就是外觀模式。在e類裡面就只需要簡單呼叫d類,而不需要關心abc類的實現方法,說白了就是簡化呼叫。2.中介者模式 中介者就是把一些邏輯處理放在中介者中處理,就類似於房屋中介,賣房子的找中介賣房子,買房子的找...
記錄一下工作中用到的hive命令
schematool dbtype mysql initschema nohup hive service metastore 1 mnt metastore.log 2 1 nohup hive service hiveserver2 1 mnt hiveserver2.log 2 1 beeli...
工作中常用到的設計模式
在脈脈上看過乙個帖子 在工作中最常用的設計模式都有哪些?總結一下這些出現頻率高的設計模式 排名不分先後 建立型設計模式 結構型設計模式 行為型設計模式 自己還沒理解,例子以後再補 解決 在有多種演算法相似的情況下 if.else 所帶來的複雜和難以維護 具體的場景就是,需求可能會改變,但是外部呼叫的...