Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung des js-Bridge-Entwurfsmusters

Detaillierte Erläuterung des js-Bridge-Entwurfsmusters

小云云
Freigeben: 2018-02-23 11:50:39
Original
1468 Leute haben es durchsucht

Das Brückenentwurfsmuster ist die Grundlage vieler anderer Entwurfsmuster, wie zum Beispiel des dekorativen Musters und des Proxy-Musters, die mehr oder weniger in seinem Schatten zu sehen sind. Eines der wichtigsten Merkmale im objektorientierten Design ist die Vererbung Als Funktion zum Erweitern einer Klasse gibt es jedoch zwei Möglichkeiten: Vererbung und Überbrückung. Nach meinem einfachen Verständnis besteht Überbrückung darin, die Verwendung der Vererbung zur Erweiterung der Klasse aufzugeben, die Klasse jedoch durch das Einschließen eines anderen Objekts mit bestimmten Funktionen zu erweitern Schauen wir uns die beiden Strukturen an.

Zuerst gehen wir davon aus, dass es eine Anforderung gibt, es gibt eine Grafikschnittstelle und dann gibt es Grafikklassen wie Rechteck, Quadrat, Kreis usw. Wir benötigen Grafiken in verschiedenen Farben Erkennen Sie diese Anforderung 🎜>Implementierung

  • Grafik-Abstraktklasse

  • Grafikklasse

Farbabstrakte Klasse

  • Farbklasse
    let Shape = function(color) {
      this.color = color;
    };
    Shape.prototype.setColor = function(color) {
      this.color = color;
    };
    Shape.prototype.draw = function() {
      new  Error();
    }
    Nach dem Login kopieren
  • Verwenden Sie
    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("圆型");
    };
    Nach dem Login kopieren
  • Brückendesign Geeignet für eine Klasse mit zwei oder mehr sich unabhängig voneinander ändernden Dimensionen, und beide Dimensionen müssen erweitert werden.
    let Color = function() {
    };
    Shape.prototype.bepaint = function() {
      new  Error();
    };
    Nach dem Login kopieren
    Der Brückenmodus erreicht die Entkopplung von Abstraktion und Implementierung. Die beiden sind unabhängig voneinander und beeinflussen sich nicht gegenseitig. Für zwei sich unabhängig voneinander ändernde Dimensionen ist der Brückenmodus perfekt.
  • Verwandte Empfehlungen:

    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("蓝色的" + shape);
    };
    Nach dem Login kopieren
    Eine kurze Einführung in das strukturelle Fliegengewichtsmuster des js-Entwurfsmusters
  • Ein Beispiel für das Service-Locator-Muster von PHP-Designmuster Detaillierte Erklärung
    let red = new Red();
    
    //正方形
    let square = new Square();
    //红色的正方形
    square.setColor(red);
    square.draw();
    
    //长方形
    let rectange = new Rectangle();
    //红色长方形
    rectange.setColor(red);
    rectange.draw();
    Nach dem Login kopieren
Detaillierte Erklärung des Delegationsmusters von PHP-Designmustern

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des js-Bridge-Entwurfsmusters. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage