在日常實用類的時候,每每要進行類功能的擴展,若是直接在裏面進行擴展,有可能會對類裏面的其餘功能產生影響,因此在擴展功能的時候就要從新寫類,這就要採用繼承的方式,如:服務器
1 class YunSuan() 2 { 3 public $a; 4 public $b; 5 function Suan() //造一個運算的方法 6 { 7 } 8 } 9 class Jia extends YunSuan() //造一個加的子類繼承父類 10 { 11 function Suan() //重寫Suan的方法 12 { 13 return $this->a+$this->b; 14 } 15 }
工廠模式:生產對象函數
若是類裏面的方法名使用了很複雜的單詞命名,就會致使在使用類時必須將類裏面的方法名記住,這會在使用類的時候形成不便。採用工廠模式,經過某些特殊的符號來生產相應的類,就會使咱們在使用類的時候很方便,以下面一個工廠模式的類:this
1 class gongchang //造一個工廠模式的類 2 { 3 static function shengchan($ysf) //定義一個生產對象的方法 4 { 5 //判斷每一個符號,並生產相應的類 6 case "+": 7 ruturn new Jia(); 8 break; 9 case "_": 10 return new Jian(); 11 break; 12 } 13 }
造好裏以後,就能夠用相應的符號來生成相應的對象,來實現功能:spa
$jia = gongchang::shengchan("+"); $jia->a = 5; $jia->b = 10; $jia->suan();
單例模式:code
在程序中,若是一個類來造了不少對象的話,就會致使服務器出問題,因此咱們要控制生成類的個數,這就要用到單例模式,控制每一個類只能造一個對象。對象
class DBDA { public static $dx; //存儲對象 //將構造函數變成私有,避免外界訪問 private function __contruct() { } //生成對象 static function shengcheng() { if(empty(self::$dx)) { $dx = new DBDA(); } return self::$dx; } }