OOP - Vias de acesso à métodos
OOP / OOP - Herança e Composição / OOP - Exemplo Composição
Existem 4 conceitos que se relacionam ao acesso à métodos de classes.
- Herança
- Composição
- Por Interface ← Melhor abordagem
- Por Objeto Concreto
- Implementação direta
Esses conceitos se complementam e formam a base do polimorfismo e da reutilização de código.
public interface IClassePai { void MetodoPai(); }
public class ClassePai : IClassePai
{
public void MetodoPai() { }
}
// Implementacao direta
public class Implementacao
{
public void Implementa()
{
var classePai = new ClassePai();
classePai.MetodoPai();
}
}
// Heranca
public class Heranca : ClassePai
{
public void HerancaMetodo() { MetodoPai(); }
}
// Composicao via objeto concreto
public class Composicao
{
public ClassePai? ClassePai { get; set; }
public void UsandoComposicao()
{
var classeComposicao = new Composicao();
classeComposicao.ClassePai?.MetodoPai();
}
}
// Composicao via interface (melhor abordagem)
public class Interface
{
private readonly IClassePai _classePai;
public Interface(IClassePai classePai) { _classePai = classePai; }
public void MetodoInterface() { _classePai.MetodoPai(); }
}
Referências
- Desenvolvedor.io - Curso Arquitetura
- Bruno Ruas