Aulas finais em PHP, Java e outras linguagens

Usa aulas finais ou não usa aulas finais? Essa é a questão. E também quando e como fazer certo.







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



All Articles