Junior
Vorbește despre paradigmele și principiile programării orientate pe obiecte.
sobes.tech AI
Răspuns de la AI
Paradigmele OOP:
- Încapsulare: Ascunderea datelor și metodelor în interiorul unei clase, oferind acces printr-o interfață.
- Moștenire: Crearea de clase noi (subclase) pe baza unor clase existente (superclase), moștenind proprietățile și metodele acestora.
- Polimorfism: Capacitatea de a folosi obiecte din clase diferite printr-o interfață comună, executând comportamente specifice fiecărei clase.
Principiile OOP (SOLID):
- Principiul responsabilității unice (SRP): Fiecare clasă trebuie să aibă o singură responsabilitate.
- Principiul deschis/închis (OCP): Clasele trebuie să fie deschise pentru extindere, dar închise pentru modificare.
- Principiul substituției Liskov (LSP): Obiectele clasei de bază pot fi înlocuite cu obiecte ale clasei derivate fără a afecta corectitudinea programului.
- Principiul segregării interfețelor (ISP): Clienții nu trebuie să depindă de interfețe pe care nu le utilizează.
- Principiul inversiunii dependențelor (DIP): Modulele de nivel superior nu trebuie să depindă de modulele de nivel inferior; ambele trebuie să depindă de abstracții. Abstracțiile nu trebuie să depindă de detalii, ci detaliile să depindă de abstracții.
Exemplu de încapsulare și moștenire:
// Clasa de bază
public class Animal
{
public string Name { get; set; }
public Animal(string name)
{
Name = name;
}
public virtual void MakeSound()
{
Console.WriteLine("Un sunet generic");
}
}
// Clasa derivată
public class Dog : Animal
{
public Dog(string name) : base(name)
{
}
// Suprascrierea metodei clasei de bază
public override void MakeSound()
{
Console.WriteLine("Ham!");
}
}
Exemplu de polimorfism:
Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Va afișa "Ham!"