php物件導向編程,php物件導向
物件導向編程的基本原則:
- 單一職責:一個類,只需要做好一件事
- 開放封閉:一個類,應該是可擴充的,而不是可修改的
- 依賴倒置:一個類,不應該強依賴另一個類。每個類對應另外一個類都是可替換的
- 配置化:儘可能地使用配置,而不是寫入程式碼
- 面向介面編程:只需要關心介面,不需要關心實現
1、設定類的屬性
class ShopProduct { public $title = 'default product'; public $producterMainName = 'main name'; public $producterFirstName = 'first name'; public $price = 0;}$product1 = new ShopProduct();//設定屬性$product1->title = "My Antonia";$product1->producterFirstName = "Cather";$product1->producterMainName = "Willa";$product1->price = 5.99;//訪問echo 'author: '.$product1->producterFirstName.' '.$product1->producterMainName;
用以上方法設定屬性值會有很多問題:
第一:PHP允許動態設定屬性,如果拼錯或忘記屬性名稱時並不會得到警告。例如錯誤地把
$product1->producterMainName = "Willa";
寫作
$product1->producterSecondName = "Willa";
,當我們輸出作者名字的時候,會有意想不到的結果。
第二:類太過鬆散,我們沒有強制設定標題、價格或者產品名稱,用戶端代碼可以確定的是這些屬性存在,但是面對的可能是預設值也可能不是,理想情況下,我們希望執行個體化ShopProduct對象時設定有意義的屬性值。
第三:不得不重複做一些經常做的事,比如多次需要完整輸出作者的名字,就要重複使用
echo 'author: '.$product1->producterFirstName.' '.$product1->producterMainName;
http://www.bkjia.com/PHPjc/1108855.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1108855.htmlTechArticlephp物件導向編程,php物件導向 物件導向編程的基本原則: 單一職責:一個類,只需要做好一件事 開放封閉:一個類,應該是可擴充的,而...