he estado leyendo recientemente y se han encontrado con la Ley de Demeter. Ahora, algo de lo que he leído tiene perfecto sentido, por ej. el repartidor de periódicos nunca debería poder buscar en el bolsillo de un cliente, agarrar la billetera y sacar el dinero. La billetera es algo que el cliente debe tener control, no el paperboy.Ley de Demeter y programación orientada a objetos confusión
Lo que me lanza sobre la ley, tal vez sólo estoy malentendido todo esto, es que encadenar propiedades junto con una jerarquía de funcionalidad/información puede ser tan útil. p.ej. .NET clase HTTPContext.
No sería codificar tales como:
If DataTable.Columns.Count >= 0 Then
DataTable.Columns(0).Caption = "Something"
End If
O
Dim strUserPlatform as string = HttpContext.Current.Request.Browser.Platform.ToString()
O
If NewTerm.StartDate >= NewTerm.AcademicYear.StartDate And
NewTerm.EndDate <= NewTerm.AcademicYear.EndDate Then
' Valid, subject to further tests.
Else
' Not valid.
End If
rompe esta ley? Pensé (quizás por error) que el objetivo de OOP era, en parte, proporcionar acceso a las clases relacionadas en una buena estructura jerárquica.
me gusta, por ejemplo, la idea de la referencia a un conjunto de herramientas de utilidad que puede ser utilizado por las clases de página para evitar tareas repetitivas, tales como el envío de mensajes de correo electrónico y encapsular métodos de cadena útiles:
Dim strUserInput As String = "London, Paris, New York"
For Each strSearchTerm In Tools.StringManipulation.GetListOfString(strUserInput, ",")
Dim ThisItem As New SearchTerm
ThisItem.Text = strSearchTerm
Next
Cualquier claridad sería genial ... en este momento no puedo conciliar cómo la ley parece desterrar las propiedades y los métodos de unión ... ¿me parece extraño que se desatienda tanto poder? Soy bastante nuevo en la POO como algunos de ustedes habrán adivinado, así que por favor vaya fácil :)
Estas "leyes" no son leyes reales. A diferencia de las leyes de la termodinámica, puedes doblarlas y romperlas cuando lo desees. Para no volverse loco, trate de considerarlo como la "guía" de Demeter, si lo sigue religiosamente terminará trabajando para él, sin hacerlo funcionar para usted. Todas las cosas con moderación ... Incluyendo la moderación. –
^--------- ¡Eso! – Dan
Gracias Binary :) –