Exacto, eso es lo que dice el libro, sin embargo es un libro con algunos años y varias personas disentimos ahora (no hace unos años atras donde estabamos de acuerdo) con esa idea. Si te fijas, todo lo que dice sobre tenerlo en la clase son cuestiones implementativas, no esenciales.
Respecto de como llevarlo a otra imagen, bueno, todo sistema debe tener una manera de inicializarse... ahi es cuando se crea la variable (global o quiza en un scope mas reducido, etc.) Hernan. On 7/21/07, entrada <[EMAIL PROTECTED]> wrote: > > > Hola Hernán, > > Gracias por tu consejo. Lo voy a tener en cuenta. > No soy un experto en esto para opinar, pero habia leido en el > documento que indique mas arriba, esto: > .."Routing all accesses to a Singleton through a single class method > is preferable to a global (variable) because the method provides a > single point of access. The only way to > get to the Singleton instance is by sending a message to the class. In > this method, the class takes responsibility for the Singleton instance > -when it's created, how > it's initialized, when it's released for garbage collection -as well > as preventing the creation of multiple instances. A global variable > can't do any of this. > Despite these drawbacks, many Singletons accessible only through > global variables exist in the various Smalltalk environments and have > served users for years. Design Patterns states that Singletons > accessed through global variables are not really examples of the > Singleton pattern. One might argue that these other examples are > Singletons and they're just not implemented optimally." > > Por eso pensé que no era la mejor forma de llevarlo como variable > global... > > Otra cosita que yo veo, no se si estoy en lo cierto, si lo tengo > dentro de una clase, puedo mas facilmente hacer un file out de mi > aplicacion y llevarla a otro pc, no sé como me doy cuenta que existe > una variable global en Smalltalk que pertenece a mi sistema, sino lo > tengo escrito en algun lado. > > > saludos, > Marcelo > > > On 20 jul, 17:01, "Hernan Wilkinson" <[EMAIL PROTECTED]> > wrote: > > Perdon que me meta en el medio de la conversacion, mas cuando no lei > sobre > > ella, solo vi aca que nombraban al Singleton y queria meter unos > puchitos de > > lo que pienso de ese patron sino molesta. > > Para mi ese patron es implementativo, no tiene sentido como se lo > presenta > > en el GOF. Como es implementativo deberia estar oculto y no estar > expuesto > > al resto de los que usan esa clase. Es por eso que nosotros lo que haces > es > > redefinir el #new para que siempre devuelva el mismo objeto, pero nadie > sabe > > eso y si es necesario cambiarlo nadie se entera. > > A veces es mejor tener un objeto globar bien conocido que usar un > singleton. > > Por lo que vi abajo quieren poder acceder a la empresa del sistema, > bueno, > > yo eso lo resolveria con una variable global "EmpresaActual" o algo asi, > o > > porque no, con el nombre de la empresa, por ejemplo "EmpresaXXX" > > De esta manera puedo en la misma imagen (o base de objetos) tener varias > > empresas y todo deberia funcionar bien. Usando el singleton todo se > limita a > > un objeto lo cual es muy restrictivo. > > > > Bueno, espero no haberme ido mucho de contexto > > Saludos, > > Hernan. > > > > On 7/20/07, entrada <[EMAIL PROTECTED]> wrote: > > > > > > > > > Gallego, > > > > > Encontré un documento donde explica el singleton > > >http://web.cecs.pdx.edu/~black/OOP/papers/Alpert%20Singleton.pdf > > > > > Y agregué un metodo de clase UniqueInstance a la empresa que me > > > devuelve la empresa. > > > > > Pero todavia no encuentro como resolver el tema de las categorias, o > > > por lo menos cual sería la forma mas prolija. > > > Como explico en el primer post creo una tarifa nueva y deseo ver la > > > lista de categorias, ahora en ese punto no encuentro qué usar de > > > referencia para que me devuelva las categorias que pertenecen a una > > > estacion de peaje, para poder hacer esto deberia traer hasta este > > > punto el objeto estacion para poder pedirle las categorias, que es > > > casi lo mismo que traer las categorias desde el metodo crear: de la > > > tarifa. > > > > > Es decir que tengo en el metodo estacion agregarTarifa: > > > tarifa crear: categorias. > > > > > La unica forma que veo de reemplazarlo es que estacion agregarTarifa > > > sea: > > > tarifa crear: self. > > > y despues al ver la lista de categorias llamar a un metodo > > > mostrarCategorias que incluya: > > > ^SistemaDePeaje darCategorias: estacion. > > > > > otra forma no encuentro. > > > > > Sino se entiende lo trato de explicar mejor... > > > > > Desde ya, muchas gracias. > > > Marcelo > > > > > On 17 jul, 13:37, GallegO <[EMAIL PROTECTED]> wrote: > > > > Marcelo: > > > > > > Te conviene usar un Singleton de la empresa actual, o tu sistema, o > tu > > > > sesion de usuario (el que está editando), para saber cuales son las > > > > categorias de tarifa para una Empresa determinada. La forma en que > > > > determines esto dependerá de los requerimientos. > > > > Eso es la implementación como para cumplir con los requerimientos > del > > > > TP, no significa que sea la ideal. > > > > > > Otra alternativa es que siempre pases a todos los editores el modelo > a > > > > editar + un objeto que maneje un "contexto" al cual pedirle todos > esos > > > > otros objetos que necesitas para completar la edición. Esto es > bastante > > > > incomodo y personalmente nunca lo usé. > > > > > > Creo que la mejor solucion viene por el lado de conocer la sesión de > > > > usuario del proceso actual. Me gustaria saber que opina el resto de > la > > > > lista de esto último. > > > > > > Creo que para tu caso de TP alcanza con el Singleton (busca como se > > > > implementa en Internet o en el mismo VS la clase... por ej. > > > > SessionModel, del lado de clase el método #current), si no entendes > nada > > > > volvé a preguntar :D > > > > > > Saludos > > > > GallegO > > > > > > SistemaPeajes > > > > entrada escribió: > > > > > > > Hola Gente, > > > > > > > Tengo esta consulta a ver si alguien me puede ayudar con VS > 3.0.1... > > > > > > > Tengo una Clase Empresa que tiene un orderedCollection de > estaciones > > > > > de peaje que posee la empresa. > > > > > La Clase Estacion contiene los orderedCollection tarifas y > categorias, > > > > > para contener las tarifas disponibles para una estacion. > > > > > > > Tambien tengo las clases Tarifa y Categoria: > > > > > > > Tarifa > > > > > categoria > > > > > importe > > > > > FechaVigenciaDesde > > > > > FechaVigenciaHasta > > > > > > > Categoria > > > > > codigo > > > > > descripción > > > > > > > Ahora bien. > > > > > Tengo un PartsWindow EditorTarifa, que me permite agregar una > nueva > > > > > tarifa, y que es llamado desde el metodo estacion agregarTarifa, > > > > > EditorTarifa tiene los campos categoria, importe, > FechaVigenciaDesde y > > > > > FechaVigenciaHasta... > > > > > Ahora lo que yo quiero hacer es agregar un botón en el > EditorTarifa > > > > > que me muestre la lista de categorias disponibles en esa estacion. > Lo > > > > > que no sé es de donde traer la lista de categorias de la estacion. > > > > > Algo que hice fue en el crear de la clase Tarifa, pasar la lista > de > > > > > categorias a la clase, para que despues esta lista llegue hasta la > > > > > ventana del EditorTarifa y poder pasarla a la lista de > > > > > categorias...pero me parece que no es lo correcto. (aparte por > alguna > > > > > razon no me muestra la lista) > > > > > Pero de echo cuando edito la tarifa, no sé a que estacion > pertenece > > > > > salvo que le pase un objeto estacion para saber de que estacion es > y > > > > > llamar a un metodo estacion seleccionarCategoria...pero tampoco me > > > > > parece bien. > > > > > > > en fin.. el echo es que no se como hacer para llevar la lista de > > > > > categorias hasta el objeto tarifa y poder seleccionar a que > categoria > > > > > corresponde la tarifa que estoy agregando... > > > > > > > Otra que se me habia ocurrido es, eliminar el objeto categoria, y > > > > > tener en el objeto tarifa la categoria como un string y chequear > al > > > > > agregar una tarifa que el campo categoria no se repita con alguno > que > > > > > ya existe... > > > > > > > bue, espero que se entienda algo....sino trato de explicarlo > mejor... > > > > > > > desde ya muchas gracias por leer este choclo... > > > > > > > saludos. > > > > > Marcelo > > > > > --~--~---------~--~----~------------~-------~--~----~ Has recibido este mensaje porque estás suscrito a Grupo "clubSmalltalk" de Grupos de Google. Si quieres publicar en este grupo, envía un mensaje de correo electrónico a [email protected] Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED] Para obtener más opciones, visita este grupo en http://groups.google.com/group/clubSmalltalk?hl=es. -~----------~----~----~----~------~----~------~--~---
