nQuando
o sistema deve ser independente de como seus produtos são criados, compostos e representados.
nQuando
o sistema deve ser configurado com uma dentre várias famílias de produtos.
nÉ necessário fornecer uma biblioteca de classes, mas não é desejável revelar que produto
particular está sendo usado.
nQuando
uma família de produtos relacionados foi projetada para ser usada em conjunto, e esta restrição tem de ser garantida.