JavaScript設計模式(橋接模式)

1. 橋接模式的定義

  • 將抽象部分與他的實現(xiàn)部分分離,這樣抽象化與實現(xiàn)化解耦,使他們可以獨立的變化
  • 應用場景是實現(xiàn)系統(tǒng)可能有多個角度分類,每一種角度都可能變化.
  • 橋方可以通過實現(xiàn)橋接口進行單方面擴展,而另一方可以繼承抽象類而單方面擴展,而之間的調用就從橋接口來作為突破口,不會受到雙方擴展的任何影響
class A {
    constructor(bridge) {
        this.bridge = bridge;
    }
    go() {
        console.log(`從${this.from()}到${this.bridge.to()}`);
    }
}
class A2 extends A {
    from() {
        return 'A2';
    }
}


class B {
    to() { }
}
class B2 extends B {
    to() {
        return 'B2';
    }
}
let b = new B2();
let a = new A2(b);
a.go();

2. 場景

2.1 分離變化

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>html</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        canvas {
            border: 1px solid #000;
        }
    </style>
</head>

<body>
    <canvas id="canvas" width="600" height="600"></canvas>
    <script>
        //形狀 顏色 坐標
        function Position(x, y) {
            this.x = x;
            this.y = y;
        }

        function Color(color) {
            this.color = color;
        }


        function Ball(x, y, color) {
            this.position = new Position(x, y);
            this.color = new Color(color);
        }
        Ball.prototype.draw = function () {
            let canvas = document.getElementById('canvas');
            let ctx = canvas.getContext('2d');
            ctx.beginPath();
            ctx.arc(this.position.x, this.position.y, 100, 0, 2 * Math.PI);
            ctx.fillStyle = this.color.color;
            ctx.fill();
        }
        new Ball(300, 300, 'red').draw();
    </script>
</body>

</html>
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.初識橋接模式 將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。 Abstraction:抽象部分的接口。...
    王偵閱讀 1,016評論 0 7
  • 原創(chuàng)文章,轉載請標注出處:《Java設計模式系列-橋接模式》 一、概述 這里摘抄一份他處的概念,你可以不必理會,先...
    唯一浩哥閱讀 476評論 0 2
  • 【學習難度:★★★☆☆,使用頻率:★★★☆☆】直接出處:橋接模式梳理和學習:https://github.com/...
    BruceOuyang閱讀 1,063評論 0 2
  • 原文傳送門 1 介紹 橋接模式是對象的結構模式。又稱為柄體(Handle and Body)模式或接口(Inter...
    dd299閱讀 660評論 0 1
  • 這里摘抄一份他處的概念,你可以不必理會,先看下面得講解與實例,然后返回來理解概念,不然抽象的概念會讓你崩潰... ...
    LoveLy2019閱讀 432評論 0 1

友情鏈接更多精彩內容