Página 1 de 1

Diferencia entre Librería de Clases y Librería de Patrones

NotaPublicado: Mié May 12, 2010 7:49 pm
por vhorozco
Saludos,

Aunque me parece que son preguntas de carácter elemental, luego que vengo trabajando algo de 6 meses en Plex60 y últimamente con WebClient, creo que debo formularlas.

¿Cual es la diferencia entre ClassLib -Librería de Clases- y PatternLibs -Librería de patrones-?.
¿Cuando debo utilizar las unas y cuando las otras?
¿Que alcance tienen las Librerías de Patrones frente a las de Clases?.
¿Como diferencio o identifico los objetos que heredan de un patrón o una clase?

Muchas gracias por la oportunas respuestas, la verdad, creo que es un tema básico pero me trae confundido.


Atentamente.
Hugo Orozco C.

Re: Diferencia entre Librería de Clases y Librería de Patron

NotaPublicado: Jue May 13, 2010 8:45 am
por Jorge Ubeda
vhorozco escribió:¿Cual es la diferencia entre ClassLib -Librería de Clases- y PatternLibs -Librería de patrones-?.
¿Cuando debo utilizar las unas y cuando las otras?
¿Que alcance tienen las Librerías de Patrones frente a las de Clases?.
¿Como diferencio o identifico los objetos que heredan de un patrón o una clase?

La principal diferencia es histórica: las "clases" fueron el primer conjunto de librerías ofrecidas para ser utilizadas como herencia. Para la versión 3, con más experiencia, estas librerías fueron completamente reescritas como "patrones". Basadas en los mismos principios, internamente son lo mismo: patrones disponibles para herencia y reutilización en nuestros modelos. La diferencia a favor de "Patterns" es su mayor modularidad y atomicidad. Con estos es más factible usar herencia múltiple, algo muy difícil con las "Clases".
¿qué es mejor? en mi opinión, largamente los "Patterns" son más utilizables, y han resuelto mejor cada problema. ¿es posible combinarlos? Si bien ambos heredan de OBASE, allí termina la coincidencia. Es difícil combinar herencia, casi imposible. Aunque es posible que coexistan una entidad basada en Foundations con otra basada en Obase.
¿Cuál usar? En mi criterio, siempre "Patterns". Sólo cuando algo no esté cubierto por este conjunto se debería recurrir a las clases OBASE; por ejemplo, las clases orientadas a seguridad (OBSEC), cuya funcionalidad no fue rehecha en la segunda versión.
¿Cómo identificar la herencia? Debes usar la herramienta de "inheritance path" (te enfocas en el objeto que te interesa, botón derecho, "Object", "Inheritance Path"). Allí puedes ver la herencia, con el objeto investigado en la base, y en orden ascendente, la forma en que Plex resuelve la herencia, hasta el objeto más primitivo al tope.