Treci la conținutul principal

Ce este

Șablonul Bridge împarte un concept în două dimensiuni independente, ca ele să poată varia separat. Forme și moduri de a le desena; mesaje și moduri de a le trimite.

Fără punte obții câte un tip pentru fiecare combinație — VectorCircle, TextCircle, VectorSquare... — iar lista se înmulțește. Cu puntea, o parte păstrează o interfață către cealaltă: orice formă funcționează cu orice renderer.


Exemplu: forme și renderere

2 renderere × 2 forme ar însemna 4 tipuri combinate; aici sunt 2 + 2, legate printr-un singur câmp de tip interfață — puntea.

Orice formă, orice renderer

Același cerc se desenează în două feluri doar pentru că păstrează un alt renderer. Adăugarea unui renderer sau a unei forme adaugă un singur tip, niciodată un rând întreg de combinații.

Prompt
Scrie un program Go cu șablonul Bridge: o interfață Renderer (VectorRenderer și TextRenderer) ca o dimensiune și o structură Shape care păstrează un nume și un Renderer ca cealaltă dimensiune. Desenează un cerc cu ambele renderere și un pătrat cu unul singur, afișând fiecare linie.
Ieșire: program Go și rezultatul capturat

Când să îl folosești

Folosește-l când observi explozia combinațiilor: fiecare fel nou de pe o axă impune tipuri noi pe cealaltă. Două axe independente — desparte-le.

Renunță la el când o dimensiune are exact o singură implementare. O punte spre un singur mal este doar un ponton.


Avantaje și dezavantaje

Avantaje: cele două părți cresc independent; combinațiile vin gratis; fiecare parte se poate testa separat.

Dezavantaje: mai multă indirectare de la început; recunoașterea din timp a celor două axe este cu adevărat grea — despărțirea prea devreme creează o abstractizare de care nu are nevoie nimeni.