SOLID design principles (programming)

Aus Wikizone
Version vom 23. Januar 2020, 20:08 Uhr von 37.49.72.8 (Diskussion) (Die Seite wurde neu angelegt: „Design Prinzipien zu robusterem und besser lesbarem Code. https://www.youtube.com/watch?v=WQue1AN93YU Dafür gibt es ein paar Benennungs Muster, Design Prin…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Design Prinzipien zu robusterem und besser lesbarem Code.

https://www.youtube.com/watch?v=WQue1AN93YU

Dafür gibt es ein paar Benennungs Muster, Design Prinzipien aber auch ein paar nicht so kompliziert umzusetzende Programmier Patterns.

Stichworte

Open Closed Principle

Entität (z.B. Klasse) offen für Erweiterung aber geschlossen für Modifikation. Funktionalität wird durch Erweitern des Codes nicht durch Ändern erreicht. Dadurch weniger Fehleranfällig. Wie macht man das ? Separiere Verhaltensweisen.

Programming Patterns

Factory Pattern

Create different Class Instances on Runtime

Bsp.

interface PayableInterface
{
  public function pay();
}
class CreditCardPayment implements PayableInterface{
  public function pay()
  {
    // do credit card payment
  }
}
class PaypalPayment implements PayableInterface{
  public function pay()
  {
    // do paypal payment
  }
}
//...
class PaymentFactory{
  public function initializePayment($type)
  {
    if($type === 'credit'){
      return new CreditCardPayment();
    } elseif($type === 'paypal'){
      return new PaypalPayment();
    }
    throw new Exception("Unsupported payment option");
  }
}

Indem man die PaymentFactory dazwischen schaltet und jeder Zahlungsweise die pay Funktion implementiert muss man nur die Factory anpassen und eine neue Klasse hinzufügen. Hätte man die Zahlungsoptionen in einer Klasse zusammengefasst, müßte man mit jeder neuen Option die Klasse ändern. Dadurch wächst die Gefahr dass sich neue Fehler einschleichen können.