Inicio > Refactorización > PHP Refactoring - Lez. 3: Métodos de una clase

Refactorización PHP - Lez. 3: Métodos de una clase

En cuanto a los métodos de una clase, también se aplica en este caso la convención de nomenclatura expuesto anteriormente para las propiedades de la propia clase. Les repetimos a continuación para mayor comodidad:

  • Si consiste en una sola palabra, todo en minúsculas, por ejemplo, la moneda ();
  • Si se hace de muchas palabras la primera letra de cada uno, a partir de la segunda, en mayúsculas, en minúsculas otra, por ejemplo, addElement ();
  • El nombre del método debe explicarse por sí misma.

Además de estas normas también en cuenta lo siguiente:

  • Si el nombre del método se compone de varias acciones se dividió en muchos sentidos, ya que hay acciones;
  • La longitud del cuerpo del método no debe exceder de 40 líneas;
  • El número de parámetros no debe exceder un máximo de 4;

Nombre del método consiste en varias acciones

Ponga el caso de que al escribir el código de una clase tiene un método con la siguiente firma:

public function controllaImmagazzina ($ producto)

El código del método es como sigue:

Almacén de la clase {

public function controllaImmagazzina ($ producto) {

if ($ producto == null) {

return "conjunto de productos";

} Else if (substr ($ producto-> getCodice (), 0, 3) == "CAT") {

return "hecho con el catálogo de edad";

} Else if ($ producto-> getIngombro ()> 10) {

volver "producto demasiado complicado";

}

$ Db = new Db ("mysql");

$ Db-> update ($ producto);

}

.............................................

}

Como puedes ver, hemos introducido un método único que podría volver acciones útiles por separado, por lo que tendremos que dividir cada acción en un nuevo método y si realmente tenemos que usarlas juntas creamos un método adicional que llama a la secuencia.

Siguiendo las indicaciones que acabamos de dar, el código anterior debería aparecer como sigue:

Almacén de la clase {

................................................

verificación de la función pública ($ producto) {

if ($ producto == null) {

return "conjunto de productos";

} Else if (substr ($ producto-> getCodice (), 0, 3) == "CAT") {

return "hecho con el catálogo de edad";

} Else if ($ producto-> getIngombro ()> 10) {

volver "producto demasiado complicado";

}

return "";

}

tienda de la función pública ($ producto) {

$ Db = new Db ("mysql");

$ Db-> update ($ producto);

}

prendeInCarico pública ($ producto) {

$ Msg = $ this-> check ($ producto);

if ($ msg! == "") {

echo $ mensaje;

Else {}

$ This-> tienda ($ producto);

echo "El hacerse cargo con éxito";

}

}

}


$ ObjProdotto = new Producto ();

$ Obj = new Almacén Almacén ();

$ Msg = $ obj Almacén -> prendeInCarico ($ objProdotto)

echo $ mensaje;

Reescribir el código que hemos hecho que sea más fácil de leer y reutilizable, en el caso que quería controlar sólo un producto dentro de otro método, o sólo almacenar un producto que no requiere control.

Analizamos ahora los otros requisitos.

  1. 17 de diciembre 2008 a las 17:34 | # 1

    Действительно классная темка.

  2. Nicola
    18 de diciembre 2008 a las 17:59 | # 2

    спасибо Вам за комментарий

    Nicola

  1. Aún no hay trackbacks ...
Immagine CAPTCHA
CAPTCHA de audio
Cambiar la imagen
*