factory method
TRANSCRIPT
![Page 1: Factory Method](https://reader031.vdocuments.pub/reader031/viewer/2022020417/55cf9460550346f57ba19832/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020417/55cf9460550346f57ba19832/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020417/55cf9460550346f57ba19832/html5/thumbnails/3.jpg)
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-