Está en la página 1de 7

EJERCICIO: PATRON TEMPLATE

SERGIO DAVID BOHADA VARGAS


20191020033

UNIVERSIDAD DISTRITAL FRANCISCO JOSE


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

BOGOTÁ, COLOMBIA
19 DE JULIO DE 2022
1. Digrama UML

2. Descripción del programa

Minimo: Aplicando el patron comando, poder tener una aplicación que nos permita obtener el area de
un cuadrado y un triangulo.

Comandos extra:

● un comando para enviarlos datos a una salida.


● un comando para calular area de la figura.
● un comando para solicitar datos de salida.

3. Codigo

Output por consonla:

Digite medida lados del cuadrado


3
El cuadrado de lados: 3.0 Contiene:
Un area de: 9.0

package co.CommandPattern.Figuras;

public interface Comando {

public void execute();

}
package co.CommandPattern.Figuras;

public interface Figura {

public void calcularArea();


public void getDatos();
public void sendDatos();
}

package co.CommandPattern.Figuras;

public class Invoker {

private Comando comando;

public Invoker(Comando comando) {

this.comando = comando;

public void doAction() {


this.comando.execute();
}

package co.CommandPattern.Figuras;

public class comCalArea implements Comando{

protected Figura figura;

public comCalArea (Figura figura) {

this.figura = figura;

@Override
public void execute() {
figura.calcularArea();

package co.CommandPattern.Figuras;

public class comshowDatos implements Comando{

protected Figura figura;

public comshowDatos(Figura figura) {


this.figura = figura;
}

@Override
public void execute() {
figura.sendDatos();
}

package co.CommandPattern.Figuras;

public class comgetDatos implements Comando{

public Figura figura;

public comgetDatos (Figura figura) {


this.figura = figura;
}

@Override
public void execute() {
figura.getDatos();

package co.CommandPattern.Figuras;
import java.util.Scanner;

public class recCuadrado implements Figura{

private double lados;


private double area;

@Override
public void calcularArea() {
this.area = Math.pow(lados, 2);

@Override
public void getDatos() {
Scanner parsedInfo = new Scanner(System.in);
System.out.println("Digite medida lados del cuadrado");
this.lados = parsedInfo.nextDouble();

@Override
public void sendDatos() {
System.out.println("El cuadrado de lados: "+this.lados+"
Contiene: "+"\n"+"Un area de: "+this.area);

package co.CommandPattern.Figuras;

import java.util.Scanner;

public class recTriangulo implements Figura {

private double base;


private double altura;
private double area;
@Override
public void calcularArea() {
this.altura = (this.base * this.altura) / 2;

@Override
public void getDatos() {
Scanner n = new Scanner(System.in);
System.out.println("Digite la altura y la base del triangulo");
this.altura = n.nextDouble();
this.base = n.nextDouble();

@Override
public void sendDatos() {
System.out.println("El cuadrado de altura: " + this.altura
+"\n"+"Base: "+this.base+"\n"+" Contiene: " + "\n" + "Un area de: " +
this.area);

package co.CommandPattern.Figuras;

public class CommandTester {

public static void main(String[] args) {

// Declarar figuras
recCuadrado cuadrado = new recCuadrado();
recTriangulo triangulo = new recTriangulo();

// Declarar comandos
Comando getArea;
Comando getData;
Comando showArea;

// Invocar comando para pedir datos (Entrada)


Invoker invoker = new Invoker(getData = new
comgetDatos(cuadrado));
invoker.doAction();

// Invocar comando para calcular area


invoker = new Invoker(getArea = new comCalArea(cuadrado));
invoker.doAction();

// Invocar comando para mostrar datos (Salida)


invoker = new Invoker(showArea = new comshowDatos(cuadrado));
invoker.doAction();
}

También podría gustarte