Como dissociar a abstração de software da implementação?
Um dos princípios fundamentais do design de software é separar as preocupações e reduzir as dependências entre as diferentes partes de um sistema. Isso ajuda a alcançar modularidade, reutilização, manutenibilidade e estabilidade. Mas como conseguir essa separação quando você tem que lidar com diferentes níveis de abstração e implementação? É aqui que os padrões de design podem ajudá-lo.