Junior
Com que frequência você usa herança nos seus projetos?
sobes.tech IA
Resposta da IA
Uso herança com moderação. É útil para implementar o princípio Don't Repeat Yourself (DRY) e para criar hierarquias de tipos, mas o uso excessivo pode levar a ligações rígidas e problemas de teste. Prefiro composição ou interfaces sempre que possível.
Exemplos de uso de herança:
- Implementação do método template.
- Criação de classes base para lidar com blocos lógicos comuns, por exemplo, em componentes de UI ou manipuladores de comandos.
// Classe base para processar dados
public abstract class DataProcessor
{
public void ProcessData()
{
LoadData();
TransformData();
SaveData();
}
protected abstract void LoadData();
protected abstract void TransformData();
protected abstract void SaveData();
}
// Classe concreta que herda da base
public class CsvDataProcessor : DataProcessor
{
protected override void LoadData()
{
// Lógica de carregamento de CSV
}
protected override void TransformData()
{
// Lógica de transformação de CSV
}
protected override void SaveData()
{
// Lógica de salvamento em CSV
}
}
Evito herança quando ela cria um "diamante" ou quando a subclasse não é uma relação verdadeira de "é" com a classe base (Princípio de Substituição de Liskov). Em vez disso, uso interfaces para definir contratos e composição para montar funcionalidades a partir de objetos menores e independentes.