1、設計
(1)**設計:通俗理解為, 類和物件的定義與配置
實現特定功能類, 其他物件組成的類,管理其他物件的類,簡單用的其他物件的類
(2)物件導向和面向過程的乙個核心區別是如何分配職責,
面向過程:一系列命令和方法的連續呼叫,控制**根據不同的條件執行不同的職責,一種自頂而下的執行方式
物件導向:將職責從客戶端的**中移動專門的物件中,減少重複和依賴
面向過程**忙於處理細節,而物件導向**只需要乙個介面即可工作,並且不考慮實行的細節
2、名詞的解析
(1)內聚(cohesion)是乙個模組內部各成分之間相互關聯程度的度量。理想情況下,要是各元件職責明確,注意關聯範圍不宜太廣,否則維護很困難
(2)緊密耦合:系統各部分**緊密綁在一起,就產生了緊密耦合
3、類的定義:
類定義為:真實的事物,一系列動作的執行者,如果事物執行的動作過多,則將類進行拆分
拆分的原則:
定義類只有乙個主要的職責,並且任務盡可能對立。
你可以把類的職責有多個詞形容,最好不超過25個,不要有 『且』 或者 『或』
4、多型:
多型:指乙個公用的介面後維護多個子類實現
例子:支付介面(抽象類):例項化子類,呼叫子類的方法實行支付邏輯流程
支付介面:定義固定的方法
各個平台支付子類:實現介面的方法
5、為介面而不是實現的程式設計
**需要重新設計的4個方向標
(1)**重複,**重複意味著緊密耦合,修改一處**同時需要多處修改
(2)類知道的太多:不能將類依附於外部環境
(3)萬能類:類過於龐大,可以將類拆分
(4)if和switch 的出現 ,可以使用多型來解決
PHP物件導向設計模式和設計原則
一 設計模式 1.單例模式 目的 讓乙個類只能生成乙個物件 步驟 將建構函式變成私有的 在類裡面做乙個靜態成員函式造物件 在方法裡加限制條件 單例模式 class ren public static function duixiang return self r 返回 r中的唯一的例項化物件 r r...
PHP常用設計模式及物件導向設計 筆記和學習
建造者模式 乙個導演類,傳入乙個 不同builder類 具體怎麼製造由此決定 來建立一輛車 定義build介面 不同車輛build類,根據不同來建造 和工廠差不多,要稍複雜一點 class director class engineer class whell class door inte ce ...
PHP 物件和引用
一直以為認為的 php5 物件預設是引用傳遞的 這個想法貌似是不對的。看下面的例子 class a class b public function bar a bar public function ref a bar f new a g new b echo f foo n 輸出1 g foo f...