Download - Factory Method

Transcript
Page 1: Factory Method

new 2 viernes, 05 de septiembre de 2014 15:25

CRLF//Producto abstracto

CRLFpublic abstract class Triangulo {

CRLF private int ladoA;

CRLFprivate int ladoB;

CRLFprivate int ladoC;

CRLF

CRLFpublic Triangulo(int ladoA, into ladoB, int loadoC) {

CRLF setLado(ladoA);

CRLFsetLado(ladoB);

CRLFsetLado(ladoC);

CRLF}

CRLF

CRLF//Cada subclase debe redefinir estos tres metodos abstractos

CRLFpublic abstract String getDescripcion();

CRLFpublic abstract double getSuperficie();

CRLFpublic abstract void dibujate();

CRLF

CRLFpublic getLadoA() {

CRLF return ladoA

CRLF}

CRLFpublic void setLadoA(int ladoA) {

CRLF this.ladoA = ladoA;

CRLF}

CRLFpublic getLadoB() {

CRLF return ladoB

CRLF}

CRLFpublic void setLadoB(int ladoB) {

CRLF this.ladoB = ladoB;

CRLF}

CRLFpublic getLadoC() {

CRLF return ladoC

CRLF}

CRLFpublic void setLadoC(int ladoC) {

CRLF this.ladoC = ladoC;

CRLF}

CRLF}

CRLF

CRLF

CRLF

CRLF//Producto concreto

CRLFpublic class Equilatero extends Triangulo {

CRLF public Equilatero(int anguloA, int anguloB, int anguloC) {

CRLF super(anguloA, anguloB, anguloC);

CRLF }

CRLFpublic String getDescripcion() {

CRLF return "Soy un Triangulo Equilatero";

CRLF}

CRLFpublic double getSuperficie() {

CRLF //Algoritmo para calcular superficie

CRLFreturn 0;

CRLF}

CRLFpublic void dibujate() {

CRLF //Algoritmo para dibujar el triangulo

CRLF}

CRLF}

CRLF

CRLF

-1-

Page 2: Factory Method

new 2 viernes, 05 de septiembre de 2014 15:25

CRLF

CRLF//Producto concreto

CRLFpublic class Escaleno extends Triangulo {

CRLF public Escaleno(int anguloA, int anguloB, int anguloC) {

CRLF super(anguloA, anguloB, anguloC);

CRLF }

CRLFpublic String getDescripcion() {

CRLF return "Soy un Triangulo Escaleno";

CRLF}

CRLFpublic double getSuperficie() {

CRLF //Algoritmo para calcular superficie

CRLFreturn 0;

CRLF}

CRLFpublic void dibujate() {

CRLF //Algoritmo para dibujar el triangulo

CRLF}

CRLF}

CRLF

CRLF

CRLF

CRLF//Producto concreto

CRLFpublic class Isosceles extends Triangulo {

CRLF public Isosceles(int anguloA, int anguloB, int anguloC) {

CRLF super(anguloA, anguloB, anguloC);

CRLF }

CRLFpublic String getDescripcion() {

CRLF return "Soy un Triangulo Isosceles";

CRLF}

CRLFpublic double getSuperficie() {

CRLF //Algoritmo para calcular superficie

CRLFreturn 0;

CRLF}

CRLFpublic void dibujate() {

CRLF //Algoritmo para dibujar el triangulo

CRLF}

CRLF}

CRLF

CRLF

CRLF

CRLF//Creator abstracto

CRLFpublic interface Triangulo_FactoryMethod {

CRLF public Triangulo createTriangulo(int ladoA, int ladoB, int ladoC);

CRLF}

CRLF

CRLF

CRLF

CRLF//Creator concreto

CRLFpublic class Triangulo_Factory implements Triangulo_FactoryMethod {

CRLF public Triangulo createTriangulo(int ladoA, int ladoB, int ladoC) {

CRLF if (( ladoA == ladoB) && (ladoA == ladoC)) {

CRLF return new Equilatero(ladoA,ladoB,ladoC);

CRLF}

CRLFelseif ((ladoA != ladoB) && (ladoA != ladoC) && (ladoB != ladoC) {

CRLF return new Escaleno(ladoA,ladoB,ladoC);

CRLF}

CRLFelse {

CRLF return new Isosceles(ladoA,ladoB,ladoC);

-2-

Page 3: Factory Method

new 2 viernes, 05 de septiembre de 2014 15:25

CRLF}

CRLF}

CRLF}

CRLF

CRLF

CRLF

CRLFpublic class Cliente {

CRLF public static void main(String[] args) {

CRLF Triangulo_FactoryMethod factory = new Triangulo_Factory();

CRLFTriangulo triangulo = factory.createTriangulo(10,10,10);

CRLFSystem.out.println(triangulo.getDescripcion());

CRLF}

}

-3-


Top Related