Treci la conținutul principal

Ce este

Șablonul Bridge (Punte) î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 ajungi la o clasă pentru fiecare combinație — VectorCircle, TextCircle, VectorSquare... — și lista se înmulțește. Cu puntea, o parte ține o interfață către cealaltă: orice formă funcționează cu orice randare.


Exemplu: forme și randări

2 randări × 2 forme ar însemna 4 clase combinate; aici sunt 2 + 2, legate printr-o singură proprietate de tip interfață — puntea.

Orice formă, orice randare

Același cerc se desenează în două moduri doar prin faptul că ține o altă randare. Adăugarea unei randări sau a unei forme adaugă o clasă, niciodată un rând întreg de combinații.

Prompt
Scrie un script PHP cu șablonul Bridge (Punte): o interfață Renderer (VectorRenderer și TextRenderer) ca o dimensiune și o clasă Shape care ține un nume și un Renderer ca cealaltă dimensiune. Desenează un cerc cu ambele randări și un pătrat cu una dintre ele, afișând fiecare linie.
Ieșire: script PHP

Când se folosește

Folosește-l când observi o explozie de combinații: fiecare tip nou pe o axă obligă la clase noi pe cealaltă. Două axe independente — separă-le.

Renunță 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 poate fi testată singură.

Dezavantaje: mai multă indirectare de la început; recunoașterea timpurie a celor două axe este cu adevărat greu — o separare prea timpurie creează o abstracție de care nimeni nu are nevoie.