Di36o_Salas

Ejemplo Bridge

Nov 2nd, 2012
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.58 KB | None | 0 0
  1. //esta es la interfaz de la implementacion (implementor)
  2. public interface Implementor {
  3. public int operacion(int a, int b);
  4. }
  5. //esta es una implementación concreta (concretImplementor)
  6. public class Sumar implements Implementor {
  7. public int operacion(int a, int b) {
  8. return a+b;
  9. }
  10. }
  11. //esta es una implementación concreta (concretImplementor)
  12. public class Multiplicar implements Implementor {
  13. public int operacion(int a, int b) {
  14. return a*b;
  15. }
  16. }
  17. // esta es una implementación concreta (concretImplementor)
  18. public class Dividir implements Implementor {
  19. public int operacion(int a, int b) {
  20. return a/b;
  21. }
  22. }
  23. //esta es la interfaz de la abstraccion (abstraction)
  24. public interface Abstraction {
  25. public int operar(int num1, int num2);
  26. }
  27. //esta clase esxtiende la interfaz definida por abstraction (RedefinedAbstraction)
  28. import operacion.Implementor;
  29. public class RefinedAbstraction implements Abstraction {
  30. Implementor implementacion=null;
  31. public RefinedAbstraction(Implementor imp){
  32. this.implementacion=imp;
  33. }
  34. public int operar(int num1, int num2) {
  35. return implementacion.operacion(num1,num2);
  36. }
  37. }
  38. //Es la clase cliente que utiliza la abstraccion (Client)
  39. import operacion.Implementor;
  40. import operacion.Abstraction;
  41. public class Cliente {
  42. public static void main(String[] args) {
  43. int num1=4;
  44. int num2=2;
  45. Implementor [] imp= {new Sumar(),new Multiplicar(), new Dividir()};
  46. Abstraction abst[] ={ new RefinedAbstraction(imp[0]), new RefinedAbstraction(imp[1]), new RefinedAbstraction(imp[2])};
  47. for (int i=0; i<3;i++){
  48. System.out.println(abst[i].operar(num1, num2));
  49. }
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment