factory method

3
new 2 viernes, 05 de septiembre de 2014 15:25 CR LF //Producto abstracto CR LF public abstract class Triangulo { CR LF private int ladoA; CR LF private int ladoB; CR LF private int ladoC; CR LF CR LF public Triangulo(int ladoA, into ladoB, int loadoC) { CR LF setLado(ladoA); CR LF setLado(ladoB); CR LF setLado(ladoC); CR LF } CR LF CR LF //Cada subclase debe redefinir estos tres metodos abstractos CR LF public abstract String getDescripcion(); CR LF public abstract double getSuperficie(); CR LF public abstract void dibujate(); CR LF CR LF public getLadoA() { CR LF return ladoA CR LF } CR LF public void setLadoA(int ladoA) { CR LF this.ladoA = ladoA; CR LF } CR LF public getLadoB() { CR LF return ladoB CR LF } CR LF public void setLadoB(int ladoB) { CR LF this.ladoB = ladoB; CR LF } CR LF public getLadoC() { CR LF return ladoC CR LF } CR LF public void setLadoC(int ladoC) { CR LF this.ladoC = ladoC; CR LF } CR LF } CR LF CR LF CR LF CR LF //Producto concreto CR LF public class Equilatero extends Triangulo { CR LF public Equilatero(int anguloA, int anguloB, int anguloC) { CR LF super(anguloA, anguloB, anguloC); CR LF } CR LF public String getDescripcion() { CR LF return "Soy un Triangulo Equilatero"; CR LF } CR LF public double getSuperficie() { CR LF //Algoritmo para calcular superficie CR LF return 0; CR LF } CR LF public void dibujate() { CR LF //Algoritmo para dibujar el triangulo CR LF } CR LF } CR LF CR LF -1-

Upload: tapito2

Post on 19-Jan-2016

8 views

Category:

Documents


1 download

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-