av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

php橋接模式的實(shí)例用法及代碼分析

瀏覽:3日期:2022-09-06 18:24:57
說明

1、將兩個(gè)原本不相關(guān)的類結(jié)合在一起,然后利用兩個(gè)類中的方法和屬性,輸出一份新的結(jié)果。

2、結(jié)構(gòu)分為Abstraction抽象類、RefindAbstraction被提煉的抽象類、Implementor實(shí)現(xiàn)類、ConcreteImplementor具體實(shí)現(xiàn)類 、Client客戶端代碼。

實(shí)例

/** * 顏色抽象類 * Class Colour */abstract class Colour{ /** * @return mixed */ abstract public function run();} /** * 黑色 * Class Black */class Black extends Colour{ public function run() {// TODO: Implement run() method.return ’黑色’; }} /** * 白色 * Class White */class White extends Colour{ public function run() {// TODO: Implement run() method.return ’白色’; }} /** * 紅色 * Class Red */class Red extends Colour{ public function run() {// TODO: Implement run() method.return ’紅色’; }} /** * 形狀抽象類 * Class Shape */abstract class Shape{ /** * 顏色 * @var Colour */ protected $colour; /** * Shape constructor. * @param Colour $colour */ public function __construct(Colour $colour) {$this->colour = $colour; } /** * @return mixed */ abstract public function operation();} /** * 圓形 * Class Round */class Round extends Shape{ /** * @return mixed|void */ public function operation() {// TODO: Implement operation() method.echo $this->colour->run() . ’圓形<br>’; }} /** * 長方形 * Class Rectangle */class Rectangle extends Shape{ /** * @return mixed|void */ public function operation() {// TODO: Implement operation() method.echo $this->colour->run() . ’長方形<br>’; }} /** * 正方形 * Class Square */class Square extends Shape{ /** * @return mixed|void */ public function operation() {// TODO: Implement operation() method.echo $this->colour->run() . ’正方形<br>’; }} // 客戶端代碼// 白色圓形$whiteRound = new Round(new White());$whiteRound->operation(); // 黑色正方形$blackSquare = new Square(new Black());$blackSquare->operation(); // 紅色長方形$redRectangle = new Rectangle(new Red());$redRectangle->operation();

運(yùn)行結(jié)果

白色圓形黑色正方形紅色長方形

內(nèi)容擴(kuò)展:

橋接模式

橋連模式:將抽象部分與實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立的變化。它是一種結(jié)構(gòu)性模式,又稱柄體(Handle and body)模式或者接口(Interface)模式。 當(dāng)一個(gè)抽象可能有多個(gè)實(shí)現(xiàn)時(shí),通常用繼承來協(xié)調(diào)他們。抽象類的定義對(duì)該抽象的接口。而具體的子類則用不同的方式加以實(shí)現(xiàn),但是此方法有時(shí)不夠靈活。繼承機(jī)制將抽象部分與他的視線部分固定在一起,使得難以對(duì)抽象部分和實(shí)現(xiàn)部分獨(dú)立地進(jìn)行修改、擴(kuò)充和充用。

理解橋接模式,重點(diǎn)需要理解如何將抽象化(Abstraction)與實(shí)現(xiàn)化(Implementation)脫耦,使得二者可以獨(dú)立地變化。

•抽象化:抽象化就是忽略一些信息,把不同的實(shí)體當(dāng)作同樣的實(shí)體對(duì)待。在面向?qū)ο笾校瑢?duì)象的共同性質(zhì)抽取出來形成類的過程即為抽象化的過程。

•實(shí)現(xiàn)化:針對(duì)抽象化給出的具體實(shí)現(xiàn),就是實(shí)現(xiàn)化,抽象化與實(shí)現(xiàn)化是一對(duì)互逆的概念,實(shí)現(xiàn)化產(chǎn)生的對(duì)象比抽象化更具體,是對(duì)抽象化事物的進(jìn)一步具體化的產(chǎn)物。

•脫耦:脫耦就是將抽象化和實(shí)現(xiàn)化之間的耦合解脫開,或者說是將它們之間的強(qiáng)關(guān)聯(lián)改換成弱關(guān)聯(lián),將兩個(gè)角色之間的繼承關(guān)系改為關(guān)聯(lián)關(guān)系。橋接模式中的所謂脫耦,就是指在一個(gè)軟件系統(tǒng)的抽象化和實(shí)現(xiàn)化之間使用關(guān)聯(lián)關(guān)系(組合或者聚合關(guān)系)而不是繼承關(guān)系,從而使兩者可以相對(duì)獨(dú)立地變化,這就是橋接模式的用意。

適用性

1). 你不希望在抽象和他的實(shí)現(xiàn)部分之間有一個(gè)固定的邦定關(guān)系,如在程序的運(yùn)行時(shí)刻實(shí)現(xiàn)部分應(yīng)該可以被選擇或者切換。

2). 類的抽象以及他的視像都可以通過生成子類的方法加以擴(kuò)充。這時(shí)bridge模式使你可以對(duì)不同的抽象接口

和實(shí)現(xiàn)部分進(jìn)行組合,并對(duì)他們進(jìn)行擴(kuò)充。

3). 對(duì)一個(gè)抽象的實(shí)現(xiàn)部分的修改應(yīng)該對(duì)客戶不產(chǎn)生影響,即客戶的代碼不需要重新編譯。

4). 你想對(duì)客戶完全隱藏抽象的實(shí)現(xiàn)部分。

5). 你想在多個(gè)實(shí)現(xiàn)間 共享實(shí)現(xiàn),但同時(shí)要求客戶并不知道這一點(diǎn)。

到此這篇關(guān)于php橋接模式的實(shí)例用法及代碼分析的文章就介紹到這了,更多相關(guān)php橋接模式是什么內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 国产精品亚洲精品 | 久久性| 日韩av在线一区 | 五月天婷婷综合 | 久久一区二区视频 | av高清在线| 激情网站在线观看 | 日韩免费精品视频 | 久久久香蕉 | 欧美日韩一区二区三区视频 | 精品一区在线播放 | 国产黄色在线观看 | 天堂在线视频 | 日韩欧美中文在线 | www.国产精品 | 91插插插插插 | 日韩中文字幕精品 | 成人在线视频网站 | 麻豆亚洲一区 | 伊人影院综合 | 能看毛片的网站 | 国产精品乱码一区二区三区 | 青娱乐99| 日韩天堂网 | 天天操夜夜爽 | 国产二区三区 | 精品一区二区三区中文字幕 | 中文字幕亚洲欧美 | 欧洲精品一区二区 | 久久亚洲欧美 | 午夜aaa| 天天干天天操天天 | 中文字幕的 | avtt久久 | 伊人久久国产 | 欧美黄色一级视频 | 久久av片 | 色综合天天综合网国产成人网 | 国产成人在线播放 | 97av在线视频 | 夜夜操狠狠操 |