Le modèle Bridge est défini comme suit : séparer l'abstraction de la mise en œuvre afin qu'elles puissent changer indépendamment. Il est mis en œuvre en utilisant des relations de combinaison au lieu de relations d'héritage, réduisant ainsi le degré de couplage des deux dimensions variables d'abstraction et de mise en œuvre.
1. Séparation de l'abstraction et de la mise en œuvre, forte évolutivité
2 Respecter le principe d'ouverture et de fermeture
3 Respecter le principe de synthèse et de réutilisation
4.
InconvénientsEn raison de la relation d'agrégation construite sur la couche d'abstraction, les développeurs doivent concevoir et programmer l'abstraction, et identifier correctement deux dimensions changeant indépendamment dans le système, ce qui augmente la difficulté de compréhension et de conception du système. Point de connaissanceVous pouvez séparer la partie abstraite de la partie implémentation, annuler la relation d'héritage entre les deux et utiliser à la place une relation de combinaison. Mise en œuvre du mode PontCas : Blue Rabbit Palace Master achète une jupeLes jupes sont divisées en deux dimensions, à savoir la couleur et le style. Les couleurs sont le jaune et le rouge ; Les styles sont divisés en jupes longues et jupes courtes ; Rôle d'abstraction : Couleurs Rôle d'abstraction raffinée : Jaune et rouge Rôle de mise en œuvre : StyleRôle de mise en œuvre du béton : Jupe longue. et jupe courteColorInterface couleur, déclarer une méthode abstraite show()public interface Color { void show(); }
public class ColorYellow implements Color { @Override public void show() { System.out.println("黄色的"); } }
public class ColorRed implements Color { @Override public void show() { System.out.println("红色的"); } }
abstract class Qun { protected Color color; protected Qun() { } protected Qun(Color color) { this.color = color; } public abstract void shows(); }
public class QunChang extends Qun { protected QunChang() { } protected QunChang(Color color) { super(color); } @Override public void shows() { System.out.println("长裙"); color.show(); } }
public class QunDuan extends Qun { protected QunDuan() { } protected QunDuan(Color color) { super(color); } @Override public void shows() { System.out.println("短裙"); color.show(); } }
public class Demo { public static void main(String[] args) { Color color = new ColorRed(); Qun qun = new QunChang(color); qun.shows(); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!