Quando desenvolvemos código baseado em uma arquitetura limpa, logo pensamos em princípios SOLID. Assinale a alternativa que exemplifica corretamente o OCP (princípio de Aberto/Fechado) em SOLID.
- A)Cada módulo de software deve ter uma, e apenas uma, razão para mudar.
Errada, porque descreve o SRP (Princípio da Responsabilidade Única), no qual cada módulo deve ter apenas uma razão para mudar.
- B)Partes intercambiáveis , devem aderir a um contrato que permita substituir as partes.
Errada, porque trata do princípio de Liskov, que exige que partes intercambiáveis possam ser substituídas sem quebrar o contrato.
- C)Projetar sistemas que permitam mudança pela adição de um novo código.
Certa, porque OCP é exatamente a ideia de permitir evolução do sistema por adição de novo código, sem alterar o existente.
- D)O código de alto nível não deve depender dos detalhes do código de baixo nível.
Errada, porque corresponde à Inversão de Dependência, na qual o código de alto nível não deve depender de detalhes de baixo nível.
- E)Os projetistas devem evitar depender de coisas que não usam.
Errada, porque representa a Segregação de Interfaces, que orienta evitar dependência de métodos ou contratos que não são usados.
Gabarito: C
O OCP, ou Princípio Aberto/Fechado, diz que um sistema deve estar aberto para extensão e fechado para modificação. Na prática, isso significa que você tenta evitar mexer no que já funciona para incluir um comportamento novo; em vez disso, você cria uma forma de acrescentar novidades sem quebrar o código existente. É o famoso “não remendo o mesmo trecho toda vez”, porque toda alteração direta aumenta o risco de efeito colateral. Em arquitetura limpa, esse princípio aparece muito em pontos como interfaces, abstrações e uso de polimorfismo. Você deixa a estrutura pronta para receber novos comportamentos por adição, não por reescrita. Assim, o sistema fica mais estável, mais fácil de testar e com menos dor de cabeça nas evoluções. Por isso, a alternativa C está correta: ela descreve exatamente a ideia de permitir mudança pela adição de novo código, sem precisar alterar o que já existe. Isso é a essência do OCP. As demais alternativas descrevem outros princípios do SOLID, como responsabilidade única, substituição de Liskov, inversão de dependência e segregação de interfaces. Em provas, a banca costuma cobrar essas definições quase como “dicionário do SOLID”. Se você memorizou a frase-chave do OCP, você mata a questão com tranquilidade: aberto para extensão, fechado para modificação.