Maison > Java > javaDidacticiel > le corps du texte

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

黄舟
Libérer: 2017-09-11 10:53:10
original
1215 Les gens l'ont consulté

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();
}
Copier après la connexion


public class ConcreteImplementorA implements Implementor {
 @Override
 public void operationImpl() {
  System.out.println("ConcreteImplementorA");
 }
}
Copier après la connexion


public class ConcreteImplementorB implements Implementor {
 @Override
 public void operationImpl() {
  System.out.println("ConcreteImplementorB");
 }
}
Copier après la connexion


public abstract class Abstraction {
 private Implementor mImplementor;

 /**
  * 通过实现部分对象的引用构造抽象部分的对象
  *
  * @param implementor 实现部分对象的引用
  */
 public Abstraction(Implementor implementor){
  mImplementor = implementor;
 }

 public void operation(){
  mImplementor.operationImpl();
 }
}
Copier après la connexion


public class RefinedAbstraction extends Abstraction {

 /**
  * 通过实现部分对象的引用构造抽象部分的对象
  *
  * @param implementor 实现部分对象的引用
  */
 public RefinedAbstraction(Implementor implementor) {
  super(implementor);
 }

 public void refinedOperation(){
  //对 Abstraction中的方法进行扩展。

  System.out.println("refinedOperation");
  operation();
 }
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal