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(); }jauneclasse jaune et implémenter l'interface couleur
public class ColorYellow implements Color { @Override public void show() { System.out.println("黄色的"); } }red
public class ColorRed implements Color { @Override public void show() { System.out.println("红色的"); } }Skirt Classe Jupe, déclarez un attribut de couleur et une méthode abstraite
abstract class Qun { protected Color color; protected Qun() { } protected Qun(Color color) { this.color = color; } public abstract void shows(); }Jupe longueHéritez la classe jupe et implémentez la méthode abstraite
public class QunChang extends Qun { protected QunChang() { } protected QunChang(Color color) { super(color); } @Override public void shows() { System.out.println("长裙"); color.show(); } }Jupe courteHéritez la classe jupe et implémentez la méthode abstraite
public class QunDuan extends Qun { protected QunDuan() { } protected QunDuan(Color color) { super(color); } @Override public void shows() { System.out.println("短裙"); color.show(); } }Test
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!