2017-05-09 22:49 GMT+02:00 Jose Caballero <[email protected]>:
> Pirmero, perdon por la ausencia de tildes. > > > Imaginemos un caso cualquiera donde el programa tiene que crear, > modificar, eliminar y listar "cosas", en algun tipo de registro (una > BBDD, ficheros, servicio web, etc.) > Las podemos llamar Item. > > Imagino que necesitaria una clase Item con los metodos para crear, > eliminar y modificar: > > class Item: > def __init__(self): > ... > > def create(self): > ... > > def remove(self): > ... > > def update(self, data): > ... > > > Mi duda es donde habria que tener un metodo list(). > ?En una clase diferente, tipo ItemsManager o algo parecido? > Creo que buscas algo con pinta de contenedor, Fowler lo llama el "repository pattern" [1]. Éste se encargaría de añadir, eliminar, listar y probablemente buscar items. No le metas esa responsabilidad a los items en si porque qué necesidad tienen éstos de saber donde los vas a guardar? Tal vez incluso necesites guardarlos en sitios distintos en distintos momentos (bdd, caché, ...) [1] https://martinfowler.com/eaaCatalog/repository.html > Asumiendo que la respuesta es que si... > ?Que pasa si tengo 2 o mas objetos que gestionar: Item1, Item2, ..., ItemN? > Los metes en distintos contenedores (el mismo parametrizado por tipo de ítem) > ?Necesitaria sendas clases Item*Manager? > Yo lo haría así > ?O todo en una sola, como sigue? > > class ItemsManager: > def listitems1(self): > ... > > def listitems2(self): > ... > > def listitemsN(self): > ... > ?Que me recomiendan? > Cualquier sugerencia de alguien con experiencia en OOP sera mas que > bienvenida. > Y links con ejemplos de buenas practicas para este tipo de problemas, mas > aun :) > > Gracias, > Jose > _______________________________________________ > Python-es mailing list > [email protected] > https://mail.python.org/mailman/listinfo/python-es >
_______________________________________________ Python-es mailing list [email protected] https://mail.python.org/mailman/listinfo/python-es
