Marcelo
LA via la inicializo en estado cerrado.
el problema de cambio de estado lo resuelvo con self delegacion.
es el problema de que la parte no conoce al todo o sea el estado de via
debe conocer a la via para cambiarle el estado,entonces lo resuelvo
con self delegation.
o sea.
Via tiene changeState: va por parametro ( colaborador externo.)
Via>>changeStateTo: aState.
aState changeStateTo: self.
" el state decide a que estado va la via ,fijate que pasa en el estado
cerrado , y el aState
es uana via cerrada"
OpenViaState>>changeStateTo: aVia,
aVia open.
"en cerrada sera close" y asi
La via se delega ( se podria decir que es victima de su estado
cuando se delega no sabe ni quien ni porque.
> Lo mismo me ocurre con el status del usuario ("vigente" o "dado de
> baja"), tambien con el sentido de la via ("ascendente" o
> "descendente") o el estado de la barrera y del semaforo.
> No se si escribirlo directamente, osea asignarle un string al
> atributo, si tomarlo como un objeto y si se hace otra cosa....
Tomalo como objeto. la via tiene un estado
el estado puede ser abierto cerrado interrumpida etc,
no uses string's
pensa esto lo unico que sabe un string es su lungitud y el manejo de sus
caracteres , para que le sirve de esto a una via?
Es string es un objeto pobre no sabe "nada" ( de otro dominio que no
sean los literales
cadenas o string's|)
en gral pensar las variables de un objeto como Strings Integers Float etc
es una vision pobre , porque son objetos para un dominio especifico
no creo que seanb buenos representatne de estados de via
sino pensa esto , le pongo un String !!! barbaro!!!
ahora tengo que preguntarle a cada rato quien es
self estado = 'cerrado'
ifTrue:[]
caigo en esa porque como estado no es nadie,
si tengo un objeto le puedo delegar sin importar quien es.
self estado changeStateTo: aVia.
" para todos los estados"
sin preguntar , eso se lllama polimorfismo.
bueno no me extiendo mas
saludos
MDC
>
> desde ya, muchas gracias!!!
>
> saludos,
> Marcelo
>
>
> On 1 mar, 00:09, "entrada" <[EMAIL PROTECTED]> wrote:
> > Una consulta:
> >
> > Tengo la via(numero estado)
> > donde estado en mi caso puede ser abierta o cerrada
> >
> > la pregunta es al inicializar la clase estoy haciendo:
> >
> > via class >> inicializar:aNumero
> > numero:=aNumero.
> > (acá viene mi duda)
> > para inicializar el campo estado...esta bien hacer esto?:
> > estado:='cerrada'.
> >
> > ó conviene tener una clase Estado(abierto cerrado) y hago esto?
> > estado:=estado cerrado
> > ó tengo un objeto cerrado (de la clase Cerrado) y un objeto abierto de
> > la clase Abierto, que son subclase de Estado y hago esto?
> > estado:=cerrado.
> > y con esto en algun momento puedo hacer estado:=aEstado....
> >
> > ooo hay otra forma de hacer esto...????
> >
> > desde ya, muchas gracias por cualquier ayuda!.
> >
> > Saludos,
> > Marcelo
> >
> > On 27 feb, 00:18, "entrada" <[EMAIL PROTECTED]> wrote:
> >
> > > Hola Gente,
> >
> > > Desde ya, muchas gracias por tomarse la molestia de leer este post.
> >
> > > Estoy continuando mi TP de programación, el hilo original es
> > > este:http://groups.google.com/group/clubSmalltalk/browse_frm/thread/465cac...
> > > (no se porque no puedo agregar mas comentarios al grupo en ese hilo,
> > > solo respuestas a los autores)
> >
> > > Acabo de subir un nuevo diagrama de clases en la sección Archivos:
> > > (ModeloDeClasesSGPv5.bmp)http://clubsmalltalk.googlegroups.com/web/ModeloDeClasesSGPv5.bmp?gda...
> >
> > > Básicamente, sigo teniendo problemas para entender como funcionan los
> > > turnos.
> >
> > > Gustavo Ibarra me dijo que en un turno pueden intervenir varios
> > > operadores (yo los llamo usuarios de mi sistema), yo lo veo como que
> > > un usuario ingresa al sistema, en ese momento se abre un turno, cuando
> > > el usuario sale del sistema, se cierra el turno, sin importar la
> > > cantidad de horas...en ese turno quedan registrados todos los tickets
> > > generados. si alguno (seguramente Marcelo Cortes) me puede explicar un
> > > poco mas....
> > > A esto es a lo que se llama cierre X?
> >
> > > Al cierre del turno genero un informe con el total de vehiculos por
> > > categoria y el monto que significa...
> >
> > > Por otro lado esta el cierre Z, que es un cierre diario, que esto no
> > > lo voy a contemplar porque tampoco lo entiendo.
> >
> > > Tambien me gustaria si es posible una explicacion sobre como funcionan
> > > los subsidios, yo en realidad lo tengo pensado de la siguiente forma
> > > ya que mi sistema es manual: viene el cliente (automovilista) y
> > > presenta una tarjeta de subsidio, el cajero en el sistema indica el
> > > porcentaje de subsidio y carga manualmente el codigo de la tarjeta.
> > > esta bien esto o es distinto?
> >
> > > Por otro lado creo que me falta algun otro objeto para registrar
> > > eventos, como ser entradas / salidas al sistema, modificaciones de
> > > ABM de algun objeto, generacion de informes, es decir todas las
> > > actividades realizadas por los usuarios. aunque quizas esto no sea tan
> > > importante al nivel de mi sistema.
> >
> > > bueno tengo otras dudas pero no quiero hacer demasiado largo el mail,
> > > aunque ya estar tarde...
> >
> > > Cualquier sugerencia / comentario sera muy bienvenido...
> >
> > > Gracias Totales.
> > > 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.
-~----------~----~----~----~------~----~------~--~---