国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

php橋接模式的實例用法及代碼分析

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

1、將兩個原本不相關的類結合在一起,然后利用兩個類中的方法和屬性,輸出一份新的結果。

2、結構分為Abstraction抽象類、RefindAbstraction被提煉的抽象類、Implementor實現類、ConcreteImplementor具體實現類 、Client客戶端代碼。

實例

/** * 顏色抽象類 * 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();

運行結果

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

內容擴展:

橋接模式

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

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

•抽象化:抽象化就是忽略一些信息,把不同的實體當作同樣的實體對待。在面向對象中,將對象的共同性質抽取出來形成類的過程即為抽象化的過程。

•實現化:針對抽象化給出的具體實現,就是實現化,抽象化與實現化是一對互逆的概念,實現化產生的對象比抽象化更具體,是對抽象化事物的進一步具體化的產物。

•脫耦:脫耦就是將抽象化和實現化之間的耦合解脫開,或者說是將它們之間的強關聯改換成弱關聯,將兩個角色之間的繼承關系改為關聯關系。橋接模式中的所謂脫耦,就是指在一個軟件系統的抽象化和實現化之間使用關聯關系(組合或者聚合關系)而不是繼承關系,從而使兩者可以相對獨立地變化,這就是橋接模式的用意。

適用性

1). 你不希望在抽象和他的實現部分之間有一個固定的邦定關系,如在程序的運行時刻實現部分應該可以被選擇或者切換。

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

和實現部分進行組合,并對他們進行擴充。

3). 對一個抽象的實現部分的修改應該對客戶不產生影響,即客戶的代碼不需要重新編譯。

4). 你想對客戶完全隱藏抽象的實現部分。

5). 你想在多個實現間 共享實現,但同時要求客戶并不知道這一點。

到此這篇關于php橋接模式的實例用法及代碼分析的文章就介紹到這了,更多相關php橋接模式是什么內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: PHP
相關文章:
主站蜘蛛池模板: 欧美视频在线看 | 一级黄色片aaa | 午夜性刺激免费视频 | 亚洲精品一区二区三区四区手机版 | 一级特黄特色的免费大片视频 | 国产精品极品美女自在线看免费一区二区 | 日本在线观看免费视频网址 | 亚洲国产一区在线精选 | 久久国产精品一区二区三区 | 亚洲 欧美 中文字幕 | 能直接看的一级欧美毛片 | 91成人在线播放 | 亚洲国产成人久久精品影视 | 国产欧美曰韩一区二区三区 | 国产在线精品香蕉综合网一区 | 中国一级特黄剌激爽毛片 | 香港激情黄三级在线视频 | 成熟女人免费一级毛片 | 尤物蜜芽福利国产污在线观看 | 一级女性全黄久久生活片 | 久久久久久久久一次 | 日韩免费精品一级毛片 | 一区二区三区国产精品 | 国产高清在线精品一区在线 | 俄罗斯极品美女毛片免费播放 | 久草资源在线 | 中文字幕视频免费在线观看 | 国产日韩亚洲不卡高清在线观看 | 91中文字幕网 | 欧美亚洲网站 | 久久久久18 | 99久久免费精品视频 | 99久热在线精品视频观看 | 能在线观看的一区二区三区 | 欧美日韩视频一区二区在线观看 | 永久黄网站色视频免费网站 | 国产小毛片 | 九九在线观看精品视频6 | 亚洲欧美一区二区久久香蕉 | 国产系列在线 | 99久久综合狠狠综合久久一区 |