Cet article présente principalement les informations pertinentes sur l'explication détaillée du mode pont en Java - le mode structurel objet. J'espère qu'à travers cet article, vous pourrez maîtriser cette partie des connaissances. Les amis dans le besoin pourront s'y référer
.Mode pont en Java - Explication détaillée d'exemples de mode structurel d'objet
Intention
La partie abstraite Séparée de ses parties d'implémentation afin qu'elles puissent toutes être modifiées indépendamment.
2. Applicabilité
Utilisez le modèle Bridge dans les situations suivantes
Vous ne voulez pas être confondu entre l'abstraction et sa mise en œuvre Il existe une relation de liaison fixe entre elles. Cela peut être le cas, par exemple, parce que certaines parties de l'implémentation doivent être sélectionnables ou commutables pendant l'exécution du programme.
L'abstraction d'une classe et son implémentation doivent être extensibles en générant des sous-classes. À l'heure actuelle, le modèle Bridge vous permet de combiner différentes interfaces abstraites et parties d'implémentation et de les étendre respectivement.
Les modifications apportées à une partie d'implémentation abstraite ne devraient avoir aucun impact sur les clients, c'est-à-dire que le code client n'a pas besoin d'être recompilé.
(C++) Vous souhaitez masquer complètement la partie implémentation de l'abstraction aux clients. En C++, la représentation d'une classe est visible dans l'interface de classe.
3. Structure
4. >
public interface Implementor { /** * 实现抽象部分的具体方法 */ public void operationImpl(); }
public class ConcreteImplementorA implements Implementor { @Override public void operationImpl() { System.out.println("ConcreteImplementorA"); } }
public class ConcreteImplementorB implements Implementor { @Override public void operationImpl() { System.out.println("ConcreteImplementorB"); } }
public abstract class Abstraction { private Implementor mImplementor; /** * 通过实现部分对象的引用构造抽象部分的对象 * * @param implementor 实现部分对象的引用 */ public Abstraction(Implementor implementor){ mImplementor = implementor; } public void operation(){ mImplementor.operationImpl(); } }
public class RefinedAbstraction extends Abstraction { /** * 通过实现部分对象的引用构造抽象部分的对象 * * @param implementor 实现部分对象的引用 */ public RefinedAbstraction(Implementor implementor) { super(implementor); } public void refinedOperation(){ //对 Abstraction中的方法进行扩展。 System.out.println("refinedOperation"); operation(); } }
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!