Abstrayendo al fondo, que hay lugar!

En la definición del SummarizedBy Pattern, surge la necesidad de tener una parte de generar el ListAll, que es un panel muy similar al que se genera con el WorkWith Pattern, del cual estaria utilizando algo parecido al webpanel que se genera con el nombre WW.

De esta situación, surge las opciones de:

1) Generar el ListAll, en el WW e referenciarlo por nombre desde el Summarizedby
Tiene el inconveniente que es dificil mantener sincronizado los filtros del SummarizedBy y los del WW para no tener errores.

2) Generar el ListAll, en el pattern Summarizedby
Tiene el inconveniente que hay que duplicar una parte de la funcionalidad que tiene el pattern WW en el Summarizedby.
El segundo inconveniente es que cuando mejoren el WW (un ejemplo fue cuando le agregaron la funcionalidad de exportar a excel) dicha mejora deberia ser reprogramada en el Summarizedby.

3) Que el SummarizedBy, genere una instancia de WW con los filtros y att correctos.
Tiene la desventaja que es dificil de imaginarse algo que el usuario pueda entender como funciona, al tener dos saltos desde el pattern a los objetos.
Ademas deberian hacerse modificaciones a la herramienta de patterns, para poder especificar 2 instanacias de patterns de diferentes tipos.

Haciendo un resumen, creo que esta siendo necesario tener algo asi como unos "meta-patterns" seria algo por encima del workwith y el summarizedby que coordinara ambos paterns para mostrarle al usuario algo coherente.

Otra opcion (que es la que me gusta mas), haciendo un refactoring de ambos patterns, seria tener "sub-patterns" o patterns compartidos, que permitieran definir objetos que van a ser generados dentro de otros patterns.
De esta forma, habria un sub-pattern llamado WWPanel, que recibiria una lista de ATT, los Filtros, una lista de accciones y algunas cosas mas y dicho sub-pattern, podria ser "colgado" tanto del WorkWith, como del SummarizedBy.

Comentarios

Entradas más populares de este blog

El Sordo

StackOverflow Documentation

Paleta de colores en GeneXus