TO Software patronen - BarackOLlama/Research GitHub Wiki

Binnen dit project wordt een aantal software-patronen gebruikt:

  • OOP
  • MvvM
  • Polymorfisme

OOP:
We gaan object georiënteerd programmeren om herhaling van code te vermijden en zodat het programma makkelijker uit te breiden is. Een voorbeeld hiervan is een persoon object die alle informatie van een persoon bijhoudt.

Code snippet:

public class Person 
{
    public string name;
}

public class ObjectAttributes
{
    static void Main()
    {
        Person p1 = new Person();
        p1.name = "Jane";

        Person p2 = new Person();
        p2.name = "Beky";

        Console.WriteLine(p1.name);
        Console.WriteLine(p2.name);
    }
}

MvvM:
Een model mag niets weten van zijn viewmodel. We gaan van dit software patroon gebruik maken zodat de view gemakkelijk losgekoppeld kan worden van de rest van het programma.

Code snippet:

public abstract class ObservableObject : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    protected void RaisePropertyChangedEvent(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
            handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

Polymorfisme:
Dezelfde methodes worden hergebruikt door overerving. Door dit te gebruiken wordt het makkelijker om uitbreidingen te maken op de software.

Code snippet:

public class Person
{
    public string name { get; private set; }
   
    public virtual void Delete()
    {
        Console.WriteLine("Deleting person");
    }
}

class Contact : Person
{
    public override void Delete()
    {
        Console.WriteLine("Deleting contact");
    }
}