jueves, 31 de marzo de 2011

Patrones de Diseno

Bueno aqui les dejare el patron de diseno ya hecho que llevo en mi projecto levemente explicado.

Aqui es el patron de diseno Builder, el cual se encarga de construir un objeto complejo de manera sencilla haciendolo parte por parte.

Esta es la clase construction, que la llame asi como la cual construye las partes del cuerpo.

class Construction {
//force the order of building process
public void construct(Body b) {
b.buildWaistDown();
b.buildTorso();
b.buildArms();
b.buildHead();
}
}

//set steps for building a body
abstract class Body {
protected Body body = new Body();

protected String showProgress() {
return body.toString();
}

abstract public void buildWaistDown();
abstract public void buildTorso();
abstract public void buildArms();
abstract public void buildHead();
}


Esta es la clase cuerpo la cual es donde se encarga de hacer todas las partes pequenas del cuerpo, en ves de hacerlo tan general,esta clase se encarga de construir los detalles del cuerpo.


class Cuerpo extends Body {

public Cuerpo(String features) {
body.setType(this.getClass() + " " + features);
}
public void buildWaistDown() {
//doLegs()
//doHips()
//doFeet()

body.setProgress("Waist Down is done");
}

public void buildTorso() {
//doBelly()
//doChest()
//doLowerBack()
//doBack()
body.setProgress("Torso is done");
}

public void buildArms() {
//doLeftArm()
//doRightArm()
//doArms()
body.setProgress("Arms are done");
}

public void buildHead() {
//doHead()
//doFace()
body.setProgress("Head is under going");

}
}


Aqui determino la clase Body, esta clase la hago para crear los tipos de datos, y los metodos a usar dentro de las otras clases.

Class Body {
private String type = null;
private List features = new ArrayList();

public Body() {

}

public Body(String type) {
this.type = type;
}

public void setType(String type) {
this.type = type;
}

public String getType() {
return type;
}

public void setProgress(String s) {
features.add(s);
}

public String toString() {
StringBuffer ff = new StringBuffer();
String t = type.substring(6);
ff.append(t + "\n ");
for (int i = 0; i < features.size(); i ++) {
ff.append(features.get(i) + "\n ");
}
return ff.toString();
}
}

Aqui es o mas sencillo, aqui es donde se crea el main dentro de la clase builder


class Builder {

public static void main(String[] args) {

Body one = new Cuerpo("Head, Torso, Waist Down, Arms");

construction const = new construction();
construction.construct(one);
System.out.println("Check body building progress: \n");
System.out.println(one.showProgress());
}
}



Bueno este es un ejemplo sobre los patrones de diseno usados en mi trabajo, si tienen alguna duda pueden escribirlo en mi blog. Si quieren ver mas patrones en mi blog, pueden esperarse a semana santa :) hasta luego.

1 comentario: