En nuestro blog queremos explicar las cosas que nos pasan, los proyectos que realizamos, compartir nuestra experiencia como empresa para aprender de la experiencia de nuestros lectores. Creemos que compartir un proyecto es mucho más interesante que guardarlo en un cajón secreto.

blog


La Ley de Demeter: definición y ejemplos

La ley de Demeter es un principio básico de la programación orientada a objetos. Sorprende al conocerlo su gran utilidad, sus resultados en proyectos de todos los tamaños y el poco conocimiento que la comunidad de desarrolladores tiene de su existencia.

Su enunciado básico es:

A method of an object should invoke only the methods of the following kinds of objects:

  1. itself
  2. its parameters
  3. any objects it creates/instantiates
  4. its direct component objects

Mejora de forma considerable la encapsulación y la cambiabilidad de nuestro código. Explicaremos en este artículo cual es su significado y como detectar los lugares en nuestro código donde no se cumple.

Una forma de comprender mejor esta ley podemos dar la vuelta al enunciado y enumerar los casos prohibidos: no se debe llamar a métodos de los objetos devueltos por otros métodos.

El caso más común que debemos evitar son las cadenas de métodos, de la forma:

a.getX().getY().getValue();

y sustituirlas por funciones que realicen dicha acción:

a.getXYValue();

Otro de los casos comunes en que no se cumple esta ley es en el que una función necesite muchas variables temporales. Se trata del mismo caso anterior, pero escrito de forma diferente, el código erróneo es de la forma:

X x = a.getX();
Y y = x.getY();
y.getValue();

Y por último, un síntoma muy común de que no se cumple esta función es que una clase requiera muchas otras para realizar su cometido y en consecuencia, en su cabecera se encuentren muchas instrucciones import.

Siguiento estas sencillas normas conseguiremos mejorar en gran medida la calidad de nuestro código.

Podeis encontrar más información en la página de la Ley de Demeter o en el paper de David Bock : “The Paperboy, the Wallet and the Law Of Demeter” aunque la documentación sobre esta ley en la lengua de Shakespeare es muy común en la red.

Posts relacionados:

menéame

2 Responses to “La Ley de Demeter: definición y ejemplos”

  1. Atenea tech blog » Blog Archive » Excepciones a la ley de Demeter Says:

    […] contacto « La ley de Demeter […]

  2. MoGa Says:

    La Ley de Demeter es muy interesante. De hecho no es algo nuevo, pero viene muy bien recordar que, por mucho que funcione, una instrucción que se mete en 30 clases no puede ser correcta.

Leave a Reply