UTNianos

Versión completa: [PdeP] Parcial Objetos - Faceless
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola compañeros, cómo están?

Les quería hacer alguna consultas del paradigma de objetos que me surgieron al hacer un parcial.

En primer lugar, si consideran correcta la implementación del punto 4 y 5.

PUNTO 4

#USUARIO
>> decimeTusMejoresAmigos
^amigos select: [unAmigo| unAmigo verTodasPublicaciones: self publicaciones]

** amigos y publicaciones son colecciones.

>> verTodasPublicaciones: colPublicaciones
^ colPublicaciones do:[unaPublicacion| unaPublicacion esVisiblepor: self]

Este self hace referencia al amigo que forma parte de la colección?

#PUBLICACION
>> esVisiblePor: unUsuario
^permiso validar: unUsuario

--- Tipos de permiso ---

#PUBLICO // cualquier persona puede ver la publi
>> validar: unUsuario
^true

#SOLOAMIGOS // solo los amigos del usuario pueden ver
>> validar: unUsuario
(^duenio amigos) esAmigo: unUsuario // se verifica que el amigo forme parte de la coleccion de amigos

#LISTABLANCA // solo los usuarios de la lista pueden ver
>> validar: unUsuario
^lista includes: unUsuario

#LISTANEGRA // los usuarios en la lista negra no pueden
>> validar: unUsuario
^(lista includes: unUsuario) not. // es correcto el uso del NOT? Lo que se intenta verificar acá es que si el usuario no forma parte de la lista negra entonces devuelva 'true', es decir, que es posible que pueda ver la publicación


PUNTO 5

#USUARIO
>> decimeTuAmigoMásPopular
^ amigos detectMax: [unAmigo| unAmigo cantidadTotalMeGusta]

El uso de detectMax es correcto o existe algún otro mensaje que mejore la implementación?
Lo que se intenta implementar acá es que cada amigo devuelva la cantidad total de me gusta, y entre todos ellos, elegir el que mayor cantidad tiene en total entre todas sus publicaciones.



>> cantidadTotalMeGusta
^publicaciones sum:[unaPubli| unaPubli cantidadMeGusta]

#PUBLICACION
>> cantidadMeGusta
^ cantMeGusta (es una variable de instancia).


Desde ya, mil gracias!!
Saludos!
el metodo:

>> verTodasPublicaciones: colPublicaciones
^ colPublicaciones do:[unaPublicacion| unaPublicacion esVisiblepor: self]

esta mal el uso del do:, ahi tendrias que poner un allSatisfy: ya que el select: espera un booleano y el do: te devuelve una coleccion.
el do: no lo uses nunca para hacer consultas, para eso esta el collect:
Cita:#USUARIO
>> decimeTusMejoresAmigos
^amigos select: [unAmigo| unAmigo verTodasPublicaciones: self publicaciones]


¡DELEGA!
Tu responsabilidad no es stalkear las publicaciones del amigo, sino que el amigo debe tener la responsabilidad de informar si es o no un mejor amigo.

Lo demás no lo leí, pero empecemos por ahí, el hecho de aprovechar bien el concepto del paradigma orientado a objetos.

Saludos!
Gracias compañeros por las sugerencias!!!

Saludos.
Buenas! bareel tendrias el parcial resuelto? me viene bien para practicar ya que rindo en estos dias
muchas gracias!
URLs de referencia