Model de pod

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Modelul bridge este un model de proiectare ( model de proiectare) al programării orientate pe obiecte, care vă permite să separați „ interfața unei clase (ce se poate face cu clasa) de implementarea sa (așa cum o face). În acest fel puteți utiliza moștenirea pentru a evolua interfața sau implementarea separat.

Structura

Bridge UML class diagram.svg

Exemplu în Java

Următorul program va fi tipărit:

 API1.cerc la 1.000000: 2.000000 rază 7.5000000
API2.cerc la 5.000000: 7.000000 rază 27.500000
/ ** „Implementator” * /
interfață DrawingAPI {
    public nul drawCircle ( dublu x , dublu y , dublă rază );
}

/ ** „ConcreteImplementor” 1/2 * /
clasa DrawingAPI1 implementează DrawingAPI {
   public void drawCircle ( dublu x , dublu y , dublă rază ) {
        Sistem . afară . printf ( "API1.circle la% f:% f raza% f \ n" , x , y , raza );
   }
}

/ ** „ConcreteImplementor” 2/2 * /
clasa DrawingAPI2 implementează DrawingAPI {
   public void drawCircle ( dublu x , dublu y , dublă rază ) {
        Sistem . afară . printf ( "API2.circle la% f:% f raza% f \ n" , x , y , raza );
   }
}

/ ** „Abstracție” * /
clasa abstractă Shape {
   protejat DrawingAPI drawingAPI ;

   Formă protejată ( DrawingAPI drawingAPI ) {
      aceasta . drawingAPI = drawingAPI ;
   }

   public abstract nul draw (); // nivel scăzut
   public abstract void resizeByPercentage ( pct dublu ); // nivel inalt
}

/ ** „Abstracție rafinată” * /
clasa CircleShape extinde Shape {
   dublu privat x , y , rază ;
   publice CircleShape (double x, y dublu, dublu rază, DrawingAPI drawingAPI) {
      super ( drawingAPI );
      aceasta . x = x ; aceasta . y = y ; aceasta . raza = raza ;
   }

   // nivel scăzut, adică specific implementare
   public nul tragere () {
        desenAPI . drawCircle ( x , y , raza );
   }
   // la nivel înalt, adică specific abstract
   public void resizeByPercentage ( pct dublu ) {
        raza * = pct ;
   }
}

/ ** „Client” * /
clasa BridgePattern {
   public static void main ( String [] args ) {
       Shape [] formes = new Shape [] {
           nou CircleShape ( 1 , 2 , 3 , nou DrawingAPI1 ()),
           nou CircleShape ( 5 , 7 , 11 , nou DrawingAPI2 ()),
       };

       pentru ( Formă formă : forme ) {
           forma . resizeByPercentage ( 2.5 );
           forma . draw ();
       }
   }
}

Elemente conexe

Alte proiecte

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT