Sobes.tech
Junior

Vorbește despre paradigmele și principiile programării orientate pe obiecte.

sobes.tech AI

Răspuns de la AI

Paradigmele OOP:

  1. Încapsulare: Ascunderea datelor și metodelor în interiorul unei clase, oferind acces printr-o interfață.
  2. Moștenire: Crearea de clase noi (subclase) pe baza unor clase existente (superclase), moștenind proprietățile și metodele acestora.
  3. Polimorfism: Capacitatea de a folosi obiecte din clase diferite printr-o interfață comună, executând comportamente specifice fiecărei clase.

Principiile OOP (SOLID):

  1. Principiul responsabilității unice (SRP): Fiecare clasă trebuie să aibă o singură responsabilitate.
  2. Principiul deschis/închis (OCP): Clasele trebuie să fie deschise pentru extindere, dar închise pentru modificare.
  3. Principiul substituției Liskov (LSP): Obiectele clasei de bază pot fi înlocuite cu obiecte ale clasei derivate fără a afecta corectitudinea programului.
  4. Principiul segregării interfețelor (ISP): Clienții nu trebuie să depindă de interfețe pe care nu le utilizează.
  5. 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!"