Composición y recursiva ocl

Composición y recursiva ocl


en Este artículo se muestra un ejemplo sencillo del uso de recusive OCL dentro de un compuesto patrón.

'Para entender la recursividad, primero debemos entender la recursividad' [Fuente desconocida]

no hay duda de que no es un programador profesional hacia fuera allí quién no ha usado la recursividad? Yo apostaría que la primera rutina recursiva que la mayoría de los programadores escribió era algún tipo de FindAllFiles rutina. La belleza de la recursividad es que es tan simple, sin embargo, los resultados dan la ilusión de que el código debe ser mucho más complicado.

poco a poco estoy reescribiendo www.HowToDoThings.com en mi muy poco tiempo libre. Antes de la categorización de los artículos fue de tres niveles de profundidad, no más y no menos de Tema->Categoría>Subcategoría. Una de las mejoras que he decidido añadir en el sitio es la capacidad de anidar una cantidad ilimitada de niveles. Para ello he implementado un muy básicos de programación orientada a objetos compuestos como patrón, por lo que

ClassDiagram

'BaseCategory' es una clase abstracta, es único propósito en la vida es tener un nombre y a la propia Subcategorías. Una 'Subcategoría' existe propios artículos y más Subcategorías. Un 'MainCategory' tiene una imagen de la página principal, y es propietaria de las Subcategorías. Mi categorización ahora puede consistir de un mínimo de dos niveles (MainCategory->Subcategoría), o como tantos niveles como me gusta.

a continuación, en el modelo de la clase base que he implementado un derivado atributo llamado 'DisplayName: String'. Este atributo se agregó inicialmente para que yo pudiera usar una sola página web ConfirmDelete.aspx para mostrar el nombre del objeto que el usuario desea eliminar (esto suele ser un artículo, pero me pueden reutilizar para cualquier objeto en absoluto). El código para este atributo es la siguiente

public string DisplayNameDeriveAndSubscribe(
ISubscriber reEvaluateSubscriber,
ISubscriber resubscribeSubscriber)

{

IOclService ocl = (IOclService) este.AsIObject().


ServiceProvider.GetEcoService(typeof(IOclService))

volver (cadena) ocl.EvaluateAndSubscribe(
este.AsIObject(), 'auto.asString',
reEvaluateSubscriber, resubscribeSubscriber).AsObject

}

simplemente evalúa 'auto.asString' en contra de la instancia actual. Esto tiene el efecto de evaluar la DefaultStringRepresentation OCL expresión introducida en el modelo y lo devuelve como una cadena. BaseCategory tiene su DefaultStringRepresentation establece en 'nombre'.

Ahora aquí es donde la recursividad entra en ella. Como yo estaba entrando en una nueva Subcategoría no tardó mucho en darse cuenta de que 'ASP.NET' me dijo nada acerca de donde en la categorización de la estructura de la que estaba trabajando. ¿No sería agradable si en lugar de ver 'ASP.NET' me gustaría realmente ver 'Computadoras->Programación->Delphi 2005->ASP.NET'? Así que eso es lo que yo hice, y la belleza es que no ocupan una sola línea de código para trabajar la ruta, debido a que utiliza un muy recursiva simple expresión OCL.

he añadido una nueva 'Ruta de acceso: String' atributo a la Subcategoría de clase, el conjunto Derivado de a True y, a continuación, establezca la Derivación OCL 'parentCategory.displayName'. Recuerde que DisplayName solamente va a devolver el valor Predeterminado Representación de Cadena de caracteres, por lo que en este caso la Subcategoría.Ruta sólo se devuelve el nombre de visualización de su padre. Este no es cualquier uso en todo, hasta que cambie el valor Predeterminado de la Cadena de Representación, como así...

parentCategory.asString '->' nombre

El nombre de visualización de cualquier categoría es su padre ... nbsp Defecto Representación de Cadena & nbsp separador su propio nombre. ¿Cuál es su padre el Defecto de Representación de Cadena? Así, si el padre es un MainCategory a continuación, la expresión 'nombre' se utiliza, sin embargo, si el padre es también una Subcategoría, la expresión 'parentCategory.asString '->' nombre de' se usa & -nbsp todo el camino hasta llegar a la MainCategory.

esto No sólo me da una muy informativo atributo de Ruta de acceso, pero como muy agradable por el producto, también me da el nombre de ruta completo en el ConfirmDelete.aspx formulario web siempre que se intenta eliminar una categoría de objetos.

& nbsp







Composicion y recursiva ocl


Composicion y recursiva ocl : Multi-millones de consejos para hacer su vida mas facil.


en Este articulo se muestra un ejemplo sencillo del uso de recusive OCL dentro de un compuesto patron.

'Para entender la recursividad, primero debemos entender la recursividad' [Fuente desconocida]

no hay duda de que no es un programador profesional hacia fuera alli quien no ha usado la recursividad? Yo apostaria que la primera rutina recursiva que la mayoria de los programadores escribio era algun tipo de FindAllFiles rutina. La belleza de la recursividad es que es tan simple, sin embargo, los resultados dan la ilusion de que el codigo debe ser mucho mas complicado.

poco a poco estoy reescribiendo www.HowToDoThings.com en mi muy poco tiempo libre. Antes de la categorizacion de los articulos fue de tres niveles de profundidad, no mas y no menos de Tema->Categoria>Subcategoria. Una de las mejoras que he decidido añadir en el sitio es la capacidad de anidar una cantidad ilimitada de niveles. Para ello he implementado un muy basicos de programacion orientada a objetos compuestos como patron, por lo que

ClassDiagram

'BaseCategory' es una clase abstracta, es unico proposito en la vida es tener un nombre y a la propia Subcategorias. Una 'Subcategoria' existe propios articulos y mas Subcategorias. Un 'MainCategory' tiene una imagen de la pagina principal, y es propietaria de las Subcategorias. Mi categorizacion ahora puede consistir de un minimo de dos niveles (MainCategory->Subcategoria), o como tantos niveles como me gusta.

a continuacion, en el modelo de la clase base que he implementado un derivado atributo llamado 'DisplayName: String'. Este atributo se agrego inicialmente para que yo pudiera usar una sola pagina web ConfirmDelete.aspx para mostrar el nombre del objeto que el usuario desea eliminar (esto suele ser un articulo, pero me pueden reutilizar para cualquier objeto en absoluto). El codigo para este atributo es la siguiente

public string DisplayNameDeriveAndSubscribe(
ISubscriber reEvaluateSubscriber,
ISubscriber resubscribeSubscriber)

{

IOclService ocl = (IOclService) este.AsIObject().


ServiceProvider.GetEcoService(typeof(IOclService))

volver (cadena) ocl.EvaluateAndSubscribe(
este.AsIObject(), 'auto.asString',
reEvaluateSubscriber, resubscribeSubscriber).AsObject

}

simplemente evalua 'auto.asString' en contra de la instancia actual. Esto tiene el efecto de evaluar la DefaultStringRepresentation OCL expresion introducida en el modelo y lo devuelve como una cadena. BaseCategory tiene su DefaultStringRepresentation establece en 'nombre'.

Ahora aqui es donde la recursividad entra en ella. Como yo estaba entrando en una nueva Subcategoria no tardo mucho en darse cuenta de que 'ASP.NET' me dijo nada acerca de donde en la categorizacion de la estructura de la que estaba trabajando. ¿No seria agradable si en lugar de ver 'ASP.NET' me gustaria realmente ver 'Computadoras->Programacion->Delphi 2005->ASP.NET'? Asi que eso es lo que yo hice, y la belleza es que no ocupan una sola linea de codigo para trabajar la ruta, debido a que utiliza un muy recursiva simple expresion OCL.

he añadido una nueva 'Ruta de acceso: String' atributo a la Subcategoria de clase, el conjunto Derivado de a True y, a continuacion, establezca la Derivacion OCL 'parentCategory.displayName'. Recuerde que DisplayName solamente va a devolver el valor Predeterminado Representacion de Cadena de caracteres, por lo que en este caso la Subcategoria.Ruta solo se devuelve el nombre de visualizacion de su padre. Este no es cualquier uso en todo, hasta que cambie el valor Predeterminado de la Cadena de Representacion, como asi...

parentCategory.asString '->' nombre

El nombre de visualizacion de cualquier categoria es su padre ... nbsp Defecto Representacion de Cadena & nbsp separador su propio nombre. ¿Cual es su padre el Defecto de Representacion de Cadena? Asi, si el padre es un MainCategory a continuacion, la expresion 'nombre' se utiliza, sin embargo, si el padre es tambien una Subcategoria, la expresion 'parentCategory.asString '->' nombre de' se usa & -nbsp todo el camino hasta llegar a la MainCategory.

esto No solo me da una muy informativo atributo de Ruta de acceso, pero como muy agradable por el producto, tambien me da el nombre de ruta completo en el ConfirmDelete.aspx formulario web siempre que se intenta eliminar una categoria de objetos.

& nbsp

Composición y recursiva ocl

Composición y recursiva ocl : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación