
Con los constructores actuales en las factorias de objetos siempre se pide un objeto nuevo, el problema es que el programador no quiere siempre un objeto nuevo, la ventaja que nos ofrece es el poder recojer objetos alojados en la memoria caché: Existen varios patrones de diseño para realizar esto correctamente, pero Dart te lo pone fácil con los constructores especiales para factorías. (Coloquialmente llamados constructores sin lágrimas).
Las expresiones de creación de instancias están basadas en interfaces y minimiza la necesidad de inyección por dependencias.
Ejemplo de utilización de factory:
interface Person factory PersonFactory{
Person(name);
final name;
}
class PersonFactory{
factory Person(name){
if(name== null) return const Ghost();
return new RealPerson(name);
}
}
class RealPerson implements Person{
RealPerson(this.name);
final name;
}
class Ghost implements Person{
const Ghost();
get name() => "ghost";
}
main(){
print(new Person("Pepita") is RealPerson);
print(new Person(null) is Ghost);
}

English


Comentarios recientes