Entrar
¿Nuevo usuario? Inscribirme
smalltalking · Un lugar para el estudio y desarrollo de Ambientes de Objetos virtuales.
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés cambiar el orden de los mensajes. Simplemente hacé clic en el enlace de columna fecha. Tus preferencias se guardarán, por lo tanto no necesitarás hacerlo otra vez cuando vuelvas a entrar.

Mensajes

  Mensajes Ayuda
Avanzado
atributos   Lista de mensajes  
Responder | Reenviar Mensaje #12779 de 17198 |
RE: [objetos] atributos

Hola Mauro:
> Ale, Guille, Muchísimas gracias...me aclararon un poco mas el panorama,
> estoy muy virgen todavía con el desarrollo con objetos.. .
> es difícil salir de lo estructurado en lo cual es
> inviable tener una tabla sin atributos quizás por eso me entro esa duda.
> Lo que si ahora no puedo relacionarlo con el
> ejemplo del profesor, ya que el tema es el siguiente:

> El sistema es de un video club, y los pagos
> de los alquileres se hacen en efectivo y el
> profesor dijo que la clase pago no debería tener
> ningún atributo. Supongo que tampoco se registra
> la fecha de pago, porque sino por lo menos tendría
> esta variable de instancia.

Bueno, aqui hay un poco de objetos y un poco del análisis de la
problemática.

Cuando se refiere a que la clase de pago no debería tener ningun atributo,
supongo que se referiría a que la clase de pago se determine por si misma.
Osea... que sea una clase propia. Ahora expando...

Tener una clase padre, que no suele instanciarse, llamada, por ej,
CondicionDePago, y cuyas subclases pueden ser CondicionDePagoEfectivo y
CondicionDePagoCuentaCorriente.

Entonces si vos tenes una transaccion (el alquiler del video), que entre sus
"atributos" tiene la forma de pago (una variable de instancia llamada
'condicionDePago'), podrías asignarle la condición de pago utilizando una
instancia de alguna de las subclases de CondicionDePago. [1]


Por ej:

| tran |
tran := TransaccionAlquiler new.
...
"carga de alquileres, precios, etc"
...
tran condicionDePago: (CondicionDePagoEfectivo new).

Y luego, si tuvieses una coleccion con todas las transacciones, y quisieses
saber cuales fueron pagadas en efectivo, podrías evaluar:

misTransacciones
select: [:tran |
(tran condicionDePago class = CondicionDePagoEfectivo)]


Con respecto a la fecha de pago, creo que eso es referente a la transacción
(al alquiler) y no a la condición de pago, la cual es, en la mayoría de los
casos y habitualmente, indiferente de cuando se realice la transaccion.
Por lo tanto si todo eso lo tenes en la transacción, tal vez te convenga que
transacción posea una variable de instancia que contenga la fecha de pago.

Espero que me hayas podido entender, y que yo haya entendido lo que
preguntabas :-)


> Disculpen mi ignorancia, es que estoy muy acostumbrado
> a estructurado y se me hace difícil pensar el sistema
> de objetos sin pensar en estructurado.

No importa, con dedicación y paciencia se te va a hacer dificil _creer_ en
que en algun momento pensaste en estructurado :-D

Saludos.

--
Esteban.

[1] Para los puristas, esto se podría resolver elegantemente con un
Singleton, pero no viene al caso. :-)




Mié, 3 de Nov, 2004 7:55 pm

emaringolo
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #12779 de 17198 |
Desplegar mensajes Autor Ordenar por fecha

Hola Lista, buenos dias, los jodo porque tengo una duda que me surgio a partir de una acotacion que le dio el profesor de la facultad a mi novia: Segun el...
Mauro Calviÿfffff1o
mauro_calvino
Sin conexión Enviar correo
3 de Nov, 2004
4:31 pm

Hola Mauro, La respuesta corta es SI, pueden existir clases sin atributos. Los atributos de una clase, se los definís vos mediante la definición de la misma,...
Guillermo Sapaya
gsapaya
Sin conexión Enviar correo
3 de Nov, 2004
5:47 pm

Hola Mauro, ... (creo que con "atributos" te referís a variables de instancia) La respuesta es NO. Las clases son instancias de Class (en realidad una...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
3 de Nov, 2004
5:50 pm

Hola Mauro, Ale, Lo que Ale te dice también es cierto, pero seguramente, ahora Mauro tiene una confusión mas grande que antes, respondo entre líneas. ... Yo...
Guillermo Sapaya
gsapaya
Sin conexión Enviar correo
3 de Nov, 2004
6:23 pm

... Yo no lo se. Para qué? Sólo lo use para saber cuanto tarda en instanciar n veces :-) Time millisecondsToRun: [1000000 timesRepeat: [Object new]]. Siendo...
Esteban A. Maringolo
emaringolo
Sin conexión Enviar correo
3 de Nov, 2004
6:46 pm

Hola, Solo un comentario, sin mucha importancia. ... size Al evaluar estas expresiones se estan olvidando de las superclases... Lo que corresponde enviar es...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
3 de Nov, 2004
7:08 pm

Ale, Guille, Muchísimas gracias...me aclararon un poco mas el panorama, estoy muy virgen todavía con el desarrollo con objetos....es difícil salir de lo...
Mauro Calviÿfffff1o
mauro_calvino
Sin conexión Enviar correo
3 de Nov, 2004
7:14 pm

... Bueno, aqui hay un poco de objetos y un poco del análisis de la problemática. Cuando se refiere a que la clase de pago no debería tener ningun atributo,...
Esteban A. Maringolo
emaringolo
Sin conexión Enviar correo
3 de Nov, 2004
7:56 pm

Hola Mauro, ... Y si lo tiene que importa? Cómo argumentó la inconveniencia de tener una var. de instancia? ... y? Quizás estaba intentando decir otra cosa...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
3 de Nov, 2004
10:29 pm

Hola, ... Estoy seguro que muchos no saben en que casos se usaría... y no se animan a preguntarlo :-) Creo que es un buen ejemplo para demostrar que el ver a...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
5 de Nov, 2004
6:57 pm

... Que raro que el #upToEnd no se implemente asi. ... Claro, pero creo que no se contradicen. Buscar no generar desperdicios es un objetivo, casi un ideal,...
Esteban A. Maringolo
emaringolo
Sin conexión Enviar correo
5 de Nov, 2004
7:33 pm

Hola, ... El mensaje #upToEnd no es ANSI (el #upTo: si lo es) por lo que vas a ver que es un mensaje implementado solo en algunos smalltalks. El mensaje #upTo:...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
5 de Nov, 2004
8:41 pm

"aStream upTo: Object new." Muy bueno !, casi me pierdo aprender de tu implementacion ya que #upToEnd no estaba en el ANSI ;) Me fije por curiosidad y: VW 7.2,...
Claudio Campos - WilNet
claudiosmall...
Sin conexión Enviar correo
5 de Nov, 2004
9:11 pm

Hola, a todos! Mientras hablaban de no generar basura, ... se me presento un ejemplo mínimo, que ya lo había pasado muchas veces pero que nunca lo había...
Facundo Vozzi
facundov79
Sin conexión Enviar correo
6 de Nov, 2004
1:27 pm

Hola! El upTo:, de squeak usa el upToEnd. Con lo que si hicieramos, aStream upTo: Object new, nos devolvue (^self upToEnd) no?. Otra cosa, mirando el metodo...
Facundo Vozzi
facundov79
Sin conexión Enviar correo
6 de Nov, 2004
1:42 pm

Hola Facundo, ... No lleves lo que decimos a los extremos :-) Lo que comentábamos sobre la "basura" se aplica, cuando uno detectó una parte del sistema donde...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
6 de Nov, 2004
7:39 pm

... Si, existen clases sin atributos [*]. Evaluando lo siguiente en un Dolphin Smalltalk me responde devuelve unos casi 900 clases que no tienen "atributos". ...
Esteban A. Maringolo
emaringolo
Sin conexión Enviar correo
3 de Nov, 2004
6:40 pm
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda