
Por que usar aulas finais
Minimize o campo de visão
Ao ver uma classe com um prefixo final, você percebe que a classe não pode ser estendida por nenhuma outra, o que não apenas a torna mais legível, mas também permite que você tenha certeza de que o escopo da lógica está limitado a essa classe específica.
Encorajando uma abordagem de composição sobre herança
O princípio aberto / fechado diz: uma classe deve ser aberta para extensão, mas fechada para mudança.
Se por qualquer motivo (entendendo bem o motivo em si) você decidir usar herança, apenas remova a palavra-chave final e pronto.
Se você não pode estender a classe “por padrão” (porque é final), você está se ajudando pensando principalmente em usar composição em vez de herança.
Por que esta aula não é final?
Se pretendemos composição, não herança, então devemos tentar evitar herança tanto quanto possível e apenas usá-la quando realmente necessário. A herança OOP é freqüentemente mal utilizada.
Delírios
Quando estudamos OOP pela primeira vez, demos um exemplo clássico de herança. No entanto, quando Alan Kay criou Smalltalk, herança não era seu conceito principal. O conceito principal era o envio de mensagens, ou seja, você pode enviar mensagens para objetos, e eles encapsulam dados e lógica. Você pode mudar o comportamento deles usando vários objetos, o que na verdade é composição. Mas, no final, o conceito de herança é tão popular que acaba ofuscando a composição.
Benefícios do uso de aulas finais
- . .
- . , .
- . , .
- . , . .
- . .
- . , , .
- . .
- , , .
- , , . , . , , .
[ ]
- .
- .
- Use composição (via DI por meio do construtor de classe) para manter as coisas juntas e minimizar a complexidade.
Subtotal: Interfaces -> Aulas Finais -> Composição