Está en la página 1de 8

EJERCICIO: PATRON BRIDGE

SERGIO DAVID BOHADA VARGAS

UNIVERSIDAD DISTRITAL FRANCISCO JOSE


FACULTAD DE INGENIERÍA DE SISTEMAS
DOCENTE: JULIO VARON VELANDIA

BOGOTÁ, COLOMBIA
15 DE JUNIO DE 2022
1. Enunciado

Se tienen dos tipos de subestaciones para la distribución de energía, industrial y residencial.


Represente usando el patron bridge, sabiendo que existen energías de tipo eólica, solar y
undimotriz.

2. Diagrama UML

3. Codigo y clases

Clase abstracta Subestación: La clase subestación es la clase que llamamos “Abstracción”


donde esta se encarga de definir las operaciones que tienen las subestaciones.

Interfaz Energía: La interfaz energía es la interfaz que llamamos “implementación” la cual


define, las implementaciones concretas que existen en el programa.

Clase Main Test

package co.Mod1.UD.Subestaciones;

public class test {


public static void main(String[] args) {
// TODO Auto-generated method stub
Subestacion sub1 = new
SubestacionResidencial(new Eolica(), new Undimotriz(),
new Solar());
Subestacion sub2 = new SubestacionIndustrial(new
Eolica(), new Undimotriz(), new Solar());
sub1.distribuir(); sub1.aumentarNivelesEnergia();
sub1.disminuirNivelesEnergia();

sub2.distribuir();
sub2.disminuirNivelesEnergia();
sub2.aumentarNivelesEnergia();
}

Interfaz Energia

package co.Mod1.UD.Subestaciones;

public interface Energia {


abstract public void generarEnergia();
}

Clase Solar

package co.Mod1.UD.Subestaciones;

public class Solar implements Energia{

@Override
public void generarEnergia() {
// TODO Auto-generated method stub
System.out.println("Se generó energía solar");
}
}

Clase Eólica

package co.Mod1.UD.Subestaciones;

public class Eolica implements Energia{

@Override
public void generarEnergia() {
// TODO Auto-generated method stub
System.out.println("Se generó energía eólica");
}

Clase Undimotriz

package co.Mod1.UD.Subestaciones;

public class Undimotriz implements Energia{

@Override
public void generarEnergia() { //
TODO Auto-generated method stub
System.out.println("Se generó energía
undimotriz");
}
}

Clase abstracta Subestación


package co.Mod1.UD.Subestaciones;

public abstract class Subestacion {


private Energia eEolica; private
Energia eUndimotriz; private
Energia eSolar; private int
flujoEnergia; public
Subestacion(Energia eEolica,
Energia
eUndimotriz, Energia eSolar) {
this.eEolica = eEolica;
this.eUndimotriz = eUndimotriz;
this.eSolar = eSolar;
flujoEnergia = 100;
}
public void disminuirNivelesEnergia()
{ if (flujoEnergia - 10 < 0) {
System.out.println("No se puede reducir el flujo de
energía");
} else {

flujoEnergia -= 10;
System.out.println("se disminuyó la energia
distribuida por la subestacion, flujo actual: " +
flujoEnergia);
}
}
public void aumentarNivelesEnergia()
{ if (flujoEnergia + 10 > 100) {
System.out.println("No se puede aumentar el
flujo de energía, flujo actual: " + flujoEnergia);
} else {

flujoEnergia += 10;
System.out.println("se aumentó la energia
distribuida por la subestacion, flujo actual: " +
flujoEnergia);
}
}

public void pararDistribucion() {


flujoEnergia = 0;
System.out.println("Se paró la distribución de
energía, flujo actual: " + flujoEnergia);
}

public void reanudarDistribucion () {


eEolica.generarEnergia();
eUndimotriz.generarEnergia();
eSolar.generarEnergia();

flujoEnergia = 100;

System.out.println("Se reanudó la distribución


de energía, flujo actual: " + flujoEnergia);
}

abstract public void distribuir();

Clase SubestaciónIndustrial

package co.Mod1.UD.Subestaciones;

public class SubestacionIndustrial extends Subestacion{

public SubestacionIndustrial(Energia
eEolica, Energia eUndimotriz, Energia eSolar) {
super(eEolica, eUndimotriz, eSolar);
// TODO Auto-generated constructor stub
}
@Override
public void distribuir() {
// TODO Auto-generated method stub
System.out.println("Distribuir energia en la
zona industrial");

Clase SubestacionRecidencial

package co.Mod1.UD.Subestaciones;

public class SubestacionResidencial extends Subestacion{

public SubestacionResidencial(Energia
eEolica, Energia eUndimotriz, Energia eSolar) {
super(eEolica, eUndimotriz, eSolar); //
TODO Auto-generated constructor stub
}

@Override
public void distribuir() {
// TODO Auto-generated method stub
System.out.println("Distribuir energia en la
zona residencial");
}

También podría gustarte