[Buoh-dev] ComicManager

Esteban Sánchez esteban at steve-0.com
Thu Aug 18 14:54:26 MDT 2005


El jue, 18-08-2005 a las 21:27 +0200, Carlos Garcia Campos escribió:
> El jue, 18-08-2005 a las 21:11 +0200, Esteban Sánchez escribió:
> > Tengo una idea sobre el tema del manager de comics. A ver si voy bien
> > encamidado.
> > 
> > Vale, puedo aceptar por cuestiones de POO que el comic no tiene que ser
> > el que se mueva, si no poco más que una URI y un pixbuf. Esto es
> > basicamente lo que tiene actualmente la clase BuohComic.
> > 
> > Si un futuro meteremos (o meteré *ejem* xD) más tipos de comics, que
> > tengan otro tipo de URIs no basadas en fechas, si no en números, la
> > única diferencia de una clase a otra es el estilo de la URI.
> > 
> > Así que en realidad no habría diferentes clases de comics, si no
> > diferentes clases de ComicManager, uno para manejar los comics con
> > fechas, otros para comics numéricos (ecol), otro para URIs ofuscadas
> > (dilbert), basados en fecha pero con publicacion aleatoria... Llamemosle
> > ComicManagerTipo (de forma genérica para más adelante)
> > 
> > ¿Voy bien encaminado?
> 
> si

Yuhu!

> > Así, el BuohComic sería una clase sencillota y supergenérica con
> > - URI genérica
> > - URI actual
> > - Tipo de comic (simple, numerico....)
> > - Pixbuf
> > - Autor
> > - Restricciones
> > - Página actual (para unos sería una fecha, para otros un número...)
> > - Blah blah blah
> 
> esto ya no lo veo. No se que es uri genérica y actual. Entiendo que un
> comic tiene una uri, ya resuelta, que apunta a el. Hemos quedado que no
> hay tipos de comic sino tipos de manejadores, así que no tiene sentido
> tener un tipo de comic como atributo de un comic. Las restricciones son
> del tipo de comic no del comic, por lo que también serán del manager.
> Pagina actual: no se que es la página de un comic. Blah blah blah: si,
> esto que no falte :-DD

El Blah es importante, la base :P. La página es lo que indicaría de
alguna manera el "número" del cómic. Ahora mismo es la fecha del comic,
de una manera más genérica y común podria entenderse como página. Te lo
explico con ejemplos:

La uri genérica es esto:
 http://picayune.uclick.com/comics/sptut/%Y/sptut%y%m%d.gif
La uri concreta para hoy sería:
 http://picayune.uclick.com/comics/sptut/2005/sptut050818.gif

La genérica es común para un comic, la concreta es única para una página
de un comic. Otro ejemplo sería ecol (el formato me lo he inventado):
 http://mirror8.escomposlinux.org/tira/ecol-%N%.png
y una concreta:
 http://mirror8.escomposlinux.org/tira/ecol-214.png
La página sería 214, que es el número en concreto de la ultima tira de
ecol. ¿Queda algo más claro así?

Pues eso, que cada comic tiene una uri genérica y una página, con esos
dos datos se consigue la concreta. No es lo mismo la uri genérica de
Garfield que la de Snoopy, aunque se obtenga igual.

Aparte, cada comic tiene sus restricciones (unos no salen en domingo,
otros solo los martes...)

El tipo sería polimorfismo, era una manera de tenerlo presente, no un
atributo, sorry :)

> Yo creo que un comic es: uri, pixbuf, autor, título, idioma y por
> supuesto Blah blah blah

El Blahblah no puede faltar.

> > El ComicManager tendría capacidad de cambiar la URI de un comic
> > dependiendo de los diferentes parámetros de cada tipo de comic.
> 
> Yo creo que será en realidad quien cree los comics en función de sus
> restricciones, al final siempre se obtiene un comic con una uri, un
> pixbuf, etc.

Sí, crearía los comics, pero haría la función de "mover" la página.

> > Así que de cara al buoh estaría el ComicManager con unos metodos
> > publicos del palo:
> > 
> > comic_manager_move_comic_forward (ComicManager manager, BuohComic comic)
> > comic_manager_move_comic_back (ComicManager manager, BuohComic comic)
> > comic_manager_blahblahblah ()
> > 
> > El ComicManager comprobaría el tipo de cada comic y llamaría a los
> > correspondientes metodos de la clase ComicManagerTipo.
> 
> ComicManager sería una clase abstracta o una interfaz, depende de la
> naturaleza de cada tipo de Manager (yo de esto ni idea, no se como va el
> tema de los comics). Si todos tienen exactamente la misma interfaz
> tendría sentido una clase abstracta. Si hay diferencias de naturaleza
> pero comparten métodos o comportamiento, entonces sería una interfaz.

Pueden tener diferencias de comportamientos (Por ejemplo ecol no tiene
restricciones), pero externamente se comportan de la misma forma.
Palante y patrás :P

> > Puede hacer dos cosas:
> > 	a) Crear una copia del comic y devolverla
> > 	b) Mover el comic directamente, cambiandole la URI
> > ¿Cual creeis que es mejor?
> 
> Hay que pedirle al manager los comics, pero el manager no tiene que
> cambiar nada, crea un comic y lo devuelve.

Sería una especie de fábrica (que no factoria) de comics, no?

Pero a la hora de ir hacia atrás en un comic, tendrías que indicarle a
partir de cual quieres mover. Por ejemplo "quiero ver el comic de ayer
de Garfield"

manager_go_back (comic, n); /* n = cantidad de páginas atrás */

¿Qué crea un BuohComic nuevo y lo devuelve? Pues perfecto, pero a partir
de algo, no? :)

> 
> Salu2

Ya tengo una idea de por donde tirar. Lo hablamos :)

Siento darte el coñazo con los comics, las uris, las fechas y tal :P
Espero que ahora lo veas más claro

Saludos!

-- 
Esteban Sánchez
 esteban at steve-0.com
 http://steve-o.org
 http://subanales.com/
 ------------------------------------------------
 PGP key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xB6E0F8AF



More information about the Buoh-dev mailing list