摘要:原文地址設(shè)計模式四繼承在設(shè)計模式二抽象類和接口以及設(shè)計模式三封裝中,我們已經(jīng)見過繼承,也就是關(guān)鍵字。對于一個好的程序設(shè)計,需要類和類之間應(yīng)該是低耦合的。繼承通常是繼承自抽象類,而不是具體類。
Introduction原文地址:PHP設(shè)計模式(四):繼承
在PHP設(shè)計模式(二):抽象類和接口以及PHP設(shè)計模式(三):封裝中,我們已經(jīng)見過繼承,也就是extends關(guān)鍵字。
和C/C++,Java,Python等語言一樣,PHP也支持繼承,而且和其他語言沒有什么區(qū)別。
還是用動物、鯨魚和鯉魚來舉例:
name . " is chewing " . $food . ". "; } protected function digest($food) { echo $this->name . " is digesting " . $food . ". "; } } class Whale extends Animal { public function __construct() { $this->name = "Whale"; } public function eat($food) { $this->chew($food); $this->digest($food); } } class Carp extends Animal { public function __construct() { $this->name = "Carp"; } public function eat($food) { $this->chew($food); $this->digest($food); } } $whale = new Whale(); $whale->eat("fish"); $carp = new Carp(); $carp->eat("moss"); ?>
運行一下:
$ php Inheritance.php Whale is chewing fish. Whale is digesting fish. Carp is chewing moss. Carp is digesting moss.
注意$this在Animal類、Whale類、Carp類中的用法。
上面的代碼看似常見,實則暗含玄機。對于一個好的程序設(shè)計,需要:
類和類之間應(yīng)該是低耦合的。
繼承通常是繼承自抽象類,而不是具體類。
通常直接繼承抽象類的具體類只有一層,在抽象類中用protected來限定。
Summary合理的繼承對于好的程序設(shè)計同樣是必不可少的,結(jié)合abstract和protected,能讓你編寫出結(jié)構(gòu)清晰的代碼。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/30328.html
摘要:原文地址設(shè)計模式十適配器模式在設(shè)計模式七設(shè)計模式分類中我們提到過結(jié)構(gòu)設(shè)計模式,結(jié)構(gòu)設(shè)計模式專注于設(shè)計對象和實例的構(gòu)建組合過程。適配器模式在不修改現(xiàn)有代碼的基礎(chǔ)上,保留了架構(gòu)。 原文地址:PHP設(shè)計模式(十):適配器模式 Introduction 在PHP設(shè)計模式(七):設(shè)計模式分類中我們提到過結(jié)構(gòu)設(shè)計模式(Structural patterns),結(jié)構(gòu)設(shè)計模式專注于設(shè)計對象(Objec...
摘要:二面向?qū)ο笥惺裁刺卣髅嫦驅(qū)ο蟮闹饕卣饔谐橄罄^承封裝和多態(tài)。析構(gòu)函數(shù)析構(gòu)函數(shù)是在引入的,它的作用與調(diào)用時機和構(gòu)造函數(shù)剛好相反,它在對象被銷毀時自動執(zhí)行。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質(zhì)的PHP面試內(nèi)容。PHP中面向?qū)ο蟪?嫉闹R點有以下7點,我將會從以下幾點進行詳細介紹說明,幫助你更好的應(yīng)對PHP面試常考的面向?qū)ο笙嚓P(guān)的知識點和考題。整個面向?qū)ο笪恼碌慕Y(jié)構(gòu)涉...
摘要:對于這個問題,接下來的工廠方法模式可以解決這個問題。二工廠方法模式的優(yōu)點擁有良好的封裝性,代碼結(jié)構(gòu)清晰。參考系列源地址系列目錄設(shè)計模式概述設(shè)計模式一簡單工廠模式設(shè)計模式二工廠方法模式設(shè)計模式三抽象工廠模式設(shè)計模式四單例模式 簡單工廠簡述: 簡單工廠模式實現(xiàn)了產(chǎn)品類的代碼跟客戶端代碼分離,但會有一個問題,優(yōu)秀的代碼是符合開閉原則如果你要加一個C類產(chǎn)品,你就要修改工廠類里面的代碼,也就是說...
摘要:原文地址設(shè)計模式五多態(tài)在設(shè)計模式四繼承中我們介紹了繼承,利用來進行程序設(shè)計的方法。和,,等語言一樣,也支持多態(tài)。多態(tài)更多是是一種面向?qū)ο蟪绦蛟O(shè)計的概念,讓同一類對象執(zhí)行同一個接口,但卻實現(xiàn)不同的邏輯功能。 原文地址:PHP設(shè)計模式(五):多態(tài) Introduction 在PHP設(shè)計模式(四):繼承中我們介紹了繼承,利用extends來進行程序設(shè)計的方法。在PHP設(shè)計模式(二):抽象類和...
閱讀 3434·2021-11-08 13:20
閱讀 3359·2021-09-30 09:48
閱讀 2560·2021-09-29 09:41
閱讀 589·2021-09-22 15:04
閱讀 2458·2021-08-23 09:44
閱讀 3663·2020-12-03 17:26
閱讀 1007·2019-08-30 14:10
閱讀 1561·2019-08-29 18:34