La ley del del Demeter (LoD), o el principio del de menos conocimiento es una pauta de diseño para el software, particularmente programas orientados al objeto que se convierte. La pauta fue inventada en la universidad del noreste hacia el extremo 1987, y se puede resumir sucinto como “solamente charla a sus amigos inmediatos.” La noción fundamental es que un objeto dado debe asumir lo menos posible sobre la estructura o las características todo lo demás (sus subcomponentes incluyendo).
Es así que nombrado para su origen en el proyecto del Demeter, un programado adaptante y esfuerzo programado Aspecto-orientado . Este proyecto fue nombrado en honor del Demeter, “distribución-madre” y la diosa de la agricultura, para significar una filosofía ascendente de la programación que también se incorpora a la ley sí mismo.
Cuando está aplicada a los programas orientados al objeto, la ley del Demeter se puede más exacto llamar la “ley del Demeter para las funciones/los métodos” (LoD-F). En este caso, un objeto A puede pedir un servicio (llamar un método) de un caso B del objeto, pero se opone A no puede “alcanzar a través” del objeto B para tener acceso a otro más objeto para pedir sus servicios. El hacer tan significaría que el objeto A requiere implícito el mayor conocimiento de la estructura interna del objeto b. En lugar, la clase del b se debe modificar en caso de necesidad de modo que el objeto A pueda hacer simplemente la petición directo del objeto B, y después dejó la propagación del objeto B la petición a cualquier subcomponente relevante. Si se sigue la ley, sólo el objeto B sabe su estructura interna.
Más formalmente, la ley del Demeter para las funciones requiere que un M del método de un O del objeto pueda invocar solamente los métodos de las clases siguientes de objetos:
Particularmente, un objeto debe evitar invocar métodos de un objeto del miembro vuelto por otro método. Para muchas idiomas orientadas al objeto modernas que utilicen un punto como identificador del campo, la ley se puede indicar simplemente como " utilizar solamente un dot". Es decir, el " del código; " de a.Method (); infringe la ley donde " " de a. Hay desacuerdo en cuanto a el desahogo de este acercamiento.com/articles/2007/08/05/lovely-demeter-meter-maid]
La ventaja de seguir la ley del Demeter es que el software resultante tiende a ser más conservable y adaptable. Puesto que los objetos son menos dependientes en la estructura interna de otros objetos, los envases del objeto pueden ser cambiados sin volver a trabajar a sus llamadores.
Una desventaja de la ley del Demeter es que requiere a veces la escritura de una gran cantidad de pequeños métodos de la “envoltura” (designados a veces el Transmogrifiers del Demeter) para propagar llamadas del método a los componentes. Además, el interfaz de una clase puede llegar a ser abultado como él recibe los métodos para las clases contenidas dando por resultado una clase sin un interfaz cohesivo.
Basili y otros publicaron resultados experimentales en el 1996 que sugerían que la ley del Demeter era una manera válida de reducir la probabilidad de las averías del software.
| Random links: | Concesión de César | Norah Jones | MovieLens | Se agacha el extremo (la narración breve) |