mvc的特點是:通過檢視和模型之間建立訂閱/通知協議,實現檢視和模型的解耦。從mvc開始討論設計模式中的各種工具,應為大多數設計模式都是與mvc有關的,只有某些部分是與mvc沒關。
ivehicle.php
<?php
inte***ce ivehicle
car.php
<?php
include_once 'ivehicle.php';
class car implements ivehicle
public function ride()
}
bus.php
<?php
include_once 'ivehicle.php';
class bus implements ivehicle
public function ride()
}
trafficbrief.php
<?php
include_once "car.php";
include_once "bus.php";
include_once "ivehicle.php";
class trafficbrief
}$one = new trafficbrief();
$one->brief(new car());
echo "-------------------------\n";
$one->brief(new bus());
is-a:在繼承關係中,子類屬於父類的一部分,相比父類更加具體。
has-a:在組合中,某個類包含了乙個或多個不同的類,這個類向那些被包含的類分派任務(委託),使用它們的方法完成一系列操作。
在選擇設計模式時,需要考慮,具體業務那些部分會發生改變,導致需要重新進行程式設計。
下表展示了常用設計模式,哪些部分改變後不會導致重新設計
作用範圍
模式可變化的部分
建立型類
工廠方法
例項化物件的子類
物件原型
例項化物件的類
結構型類
介面卡物件的介面
物件介面卡
物件職責而不派生子類
行為型類
模板方法
演算法中的步驟
物件狀態
物件狀態
物件策略
演算法物件
責任鏈可以滿足請求的物件
物件觀察者
依賴於其他物件的物件數,當前可以有多少個依賴物件
框架具有指示性,可以清晰的指示解決乙個問題的結構。框架是比設計模式更加具體,應用採用某個框架,就會受這個框架限制,但是應用構建起了簡單。
php 設計模式 學習筆記
php 有如下幾種設計模式 初聽到設計模式可能讓你覺得很抽象,其實設計模式就是對常見程式設計問題的靈活解決方案。1 工廠模式 factory 他之所以被成為工廠模式是因為他負責 生產 物件,看看下面的例子 class factoryelse 你如何呼叫呢 factorymql factory fac...
PHP設計模式學習筆記
當多個地方需要例項化乙個類的時候,為了滿足之後可能需要做修改的可能的時候可以使用工廠模式。即在乙個類中的乙個方法例項化 之後需要修改只要修改該函式即可。資料庫鏈結,單例模式,將建構函式宣告為私有 遮蔽在其他地方例項化資料庫連線,宣告乙個方法建立例項 new self 即定義乙個受保護的屬性陣列,當呼...
Head First設計模式筆記(設配器模式)
設配器模式 將乙個類的介面,轉換成客戶期望的另乙個介面,設配器讓原來介面不相容的類可以合作無間 火雞介面 public inte ce turkey具體的火雞 public class wildturkey implements turkey override public void fly 鴨子介...