工廠模式:顧名思義就是建立對象或者特定資源的設計容器;php
<?php /**工廠模式:解決類與類之間的高耦合問題,實現類內部的高聚合,低耦合 *設計思想:當類的資源會在項目中高頻的調用,若該類的生成方法有變化(如建立對象添加了參數),則必須在依賴此類的全部文件中動態的作出修改, * 十分繁瑣不方便且容易出錯,工廠模式正是解決類之間的高度耦合問題,使得類的構造交給某個特定的工廠類,須要調用此類資源的其餘文件只需依賴於 * 某個特定的工廠類,下降耦合度; * * 工廠模式的粗糙展現 * */ //能力接口 interface power { function fly(); function shoot(); } //獸族工廠 class Orcs implements power { function fly() { return 'the animal has a pair of wings'; } function shoot() { return 'the animal can use guns'; } } //人族 class Man implements power { function fly() { return 'the man can fly with airplane'; } function shoot() { return 'the man is the inventor of hot weapon'; } } class Factory { public static function createHero($type) { switch($type){ case 'man': return new Man; break; case 'orcs': return new Orcs; break; } } } //類經過工廠類構造,當類的建立方式有所變化時,只需修改工廠類中的構造形式便可 $man = Factory::createHero('man'); echo $man->fly()."<br />"; $orcs = Factory::createHero('orcs'); echo $orcs->shoot();