Pergunta

Qual é a diferença entre uma 'abstração' e uma 'fachada'?

Existe alguma diferença? Ou os termos são intercambiáveis?

Foi útil?

Solução

o padrão de fachada é uma interface simplificada para uma base de código maior e possivelmente mais complexa. A base de código pode ser uma única classe, ou mais. A fachada apenas oferece uma interface simples.

Abstração, é usado para representar um conceito, mas não deve estar vinculado a nenhuma instância específica. (Ou seja: uma classe abstrata). Isso não implica simplificar (como o padrão de fachada), mas sim uma interface ou representação 'comum'.

Outras dicas

Fachada é um padrão de design específico, destinado a ocultar as coisas internas dentro de um pacote / módulo de seus clientes por trás de uma interface bem definida. Geralmente oculta várias interfaces/classes por trás de uma única comum, daí o seu nome.

'Abstração' é um termo geral, que significa esconder os detalhes concretos de algo do mundo exterior.

Portanto, esses dois não são termos intercambiáveis.

A fachada é um padrão de design do GOF, muito específico. Em Essense, trata-se de esconder a funcionalidade do complexo demais do corpo principal do seu aplicativo.

A abstração é um termo mais vago relacionado à funcionalidade oculta de um serviço de seu cliente.

Resumo para mim significa levar as partes comuns de uma coleção de coisas e criar uma coisa base a delas, na qual a coleção pode desenhar, como uma classe pai.

Uma fachada é um rosto (literalmente falando), então eles a analogia de uma classe base não se mantém. Uma fachada é mais uma interface, por isso não precisaria estar relacionada às coisas que a usam. Eu penso nisso mais como uma máscara. Minha aula terá uma máscara "descartável", por exemplo.

Portanto, a diferença, na minha opinião, é que um padrão abstrato permite que uma hierarquia seja construída, onde como um padrão de fachada permite que as classes pareçam semelhantes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top