Maison >Java >javaDidacticiel >Un exemple de modèle structurel d'objet de modèle de pont en Java

Un exemple de modèle structurel d'objet de modèle de pont en Java

黄舟
黄舟original
2017-09-11 10:53:101223parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn