成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js設(shè)計(jì)模式 --- 橋接設(shè)計(jì)模式

jsdt / 686人閱讀

摘要:他們兩個(gè)互相獨(dú)立,不會(huì)影響到對(duì)方對(duì)于兩個(gè)獨(dú)立變化的維度,使用橋接模式再適合不過了。

橋接設(shè)計(jì)模式
橋接設(shè)計(jì)模式是許多其他設(shè)計(jì)模式的基礎(chǔ),比如裝飾模式, 代理模式都或多或少看到他的影子, 在面向?qū)ο笤O(shè)計(jì)中最重要的一個(gè)特點(diǎn)就是繼承, 然而作為拓展類的功能的方式有兩種 -- 繼承和橋接, 橋接用我簡單的理解就是放棄使用繼承的方式拓展類, 而是采用包含另一個(gè)具有一定功能的對(duì)象來拓展類, 下面來看兩種結(jié)構(gòu)

首先我們假設(shè)有一個(gè)需求, 有一個(gè)圖形接口, 然后有長方形, 正方形, 圓形等圖形類, 我們需要各種顏色的圖形, 下面用繼承和橋接的方式來實(shí)現(xiàn)這種需求.

繼承

橋接

橋接模式結(jié)構(gòu)

實(shí)現(xiàn)

圖形抽象類

let Shape = function(color) {
  this.color = color;
};
Shape.prototype.setColor = function(color) {
  this.color = color;
};
Shape.prototype.draw = function() {
  new  Error();
}

圖形類

let Rectangle = function (color) {
  Shape.call(this, color);
};
extend(Rectangle, Shape);
Rectangle.prototype.draw = function () {
  color.bepaint("長方形");
};

let Square = function (color) {
  Shape.call(this, color);
};
extend(Square, Shape);
Square.prototype.draw = function () {
  color.bepaint("正方形");
}

let Circle = function (color) {
  Shape.call(this, color);
};
extend(Circle, Shape);
Circle.prototype.draw = function () {
  color.bepaint("圓型");
};

顏色抽象類

let Color = function() {
};
Shape.prototype.bepaint = function() {
  new  Error();
};

顏色類

let Red = function () {
  Color.call(this);
};
extend(Red, Color);
Red.prototype.bepaint = function(shape) {
  console.log("白色的" + shape);
};

let Green = function () {
  Color.call(this);
};
extend(Green, Color);
Green.prototype.bepaint = function(shape) {
  console.log("綠色的" + shape);
};

let Blue = function () {
  Color.call(this);
};
extend(Blue, Color);
Blue.prototype.bepaint = function(shape) {
  console.log("藍(lán)色的" + shape);
};

使用

let red = new Red();

//正方形
let square = new Square();
//紅色的正方形
square.setColor(red);
square.draw();

//長方形
let rectange = new Rectangle();
//紅色長方形
rectange.setColor(red);
rectange.draw();

橋式設(shè)計(jì)適用于一個(gè)類存在兩個(gè)或多個(gè)獨(dú)立變化的維度,且這兩個(gè)維度都需要進(jìn)行擴(kuò)展, 
橋接模式實(shí)現(xiàn)了抽象化與實(shí)現(xiàn)化的脫耦。他們兩個(gè)互相獨(dú)立,不會(huì)影響到對(duì)方, 對(duì)于兩個(gè)獨(dú)立變化的維度,使用橋接模式再適合不過了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107559.html

相關(guān)文章

  • JS 橋接模式

    摘要:簡介橋接模式將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。同時(shí)橋接模式也有自己的缺點(diǎn)大量的類將導(dǎo)致開發(fā)成本的增加,同時(shí)在性能方面可能也會(huì)有所減少。 1. 簡介 橋接模式(Bridge)將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。其實(shí)就是函數(shù)的封裝,比如要對(duì)某個(gè)DOM元素添加color和backgroundColor,可以封裝個(gè)changeColor函數(shù),這樣可以在多個(gè)...

    chemzqm 評(píng)論0 收藏0
  • 一個(gè)例子了解什么是橋接模式

    摘要:更多前端技術(shù)和知識(shí)點(diǎn),搜索訂閱號(hào)菌訂閱橋接模式實(shí)際上就是將邏輯抽象和具體的實(shí)現(xiàn)分離。以追加字符串到文件中為例代碼從變?yōu)樯厦娲a是讀取某個(gè)文件并在文件中追加字符串,最后調(diào)用回調(diào)函數(shù)。請(qǐng)關(guān)注我的訂閱號(hào),不定期推送有關(guān)的技術(shù)文章,只談技術(shù)不談八卦 showImg(https://segmentfault.com/img/remote/1460000020002974?w=640&h=426)...

    muzhuyu 評(píng)論0 收藏0
  • 橋接&組合

    摘要:橋接實(shí)現(xiàn)的時(shí)候橋接模式非常有用可能正是由于這個(gè)該模式使用地不夠廣泛在設(shè)計(jì)時(shí)該模式可以弱化與使用它的類和對(duì)象之間的耦合該模式的作用在于將抽象與其實(shí)現(xiàn)隔離開讓他們獨(dú)立變化而且對(duì)于事件驅(qū)動(dòng)編程有許多好處有以及其他基于動(dòng)作的方法無論它們是用來創(chuàng)建鼓 橋接 實(shí)現(xiàn) API 的時(shí)候,橋接模式非常有用,可能正是由于這個(gè),該模式使用地不夠廣泛.在設(shè)計(jì) js API 時(shí),該模式可以弱化API 與使用它的類...

    yuanxin 評(píng)論0 收藏0
  • JS 適配器模式

    摘要:另外,適配器模式和其它幾個(gè)模式可能容易讓人迷惑,這里說一下大概的區(qū)別適配器和橋接模式雖然類似,但橋接的出發(fā)點(diǎn)不同,橋接的目的是將接口部分和實(shí)現(xiàn)部分分離,從而對(duì)他們可以更為容易也相對(duì)獨(dú)立的加以改變。 1. 簡介 適配器模式(Adapter)是將一個(gè)類(對(duì)象)的接口(方法或?qū)傩裕┺D(zhuǎn)化成客戶希望的另外一個(gè)接口(方法或?qū)傩裕?,適配器模式使得原本由于接口不兼容而不能一起工作的那些類(對(duì)象)可以一...

    Jeffrrey 評(píng)論0 收藏0
  • 設(shè)計(jì)模式橋接模式

    摘要:橋接模式中的所謂脫耦,就是指在一個(gè)軟件系統(tǒng)的抽象化和實(shí)現(xiàn)化之間使用關(guān)聯(lián)關(guān)系組合或者聚合關(guān)系而不是繼承關(guān)系,從而使兩者可以相對(duì)獨(dú)立地變化,這就是橋接模式的用意。 0x01.定義與類型 定義:將抽象部分與它的具體實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。 橋接模式將繼承關(guān)系轉(zhuǎn)化成關(guān)聯(lián)關(guān)系,它降低了類與類之間的耦合度,減少了系統(tǒng)中類的數(shù)量,也減少了代碼量。 橋接模式中的所謂脫耦,就是指在一個(gè)軟...

    kycool 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<