Giter VIP home page Giter VIP logo

solid-principles's Introduction

Die SOLID-Prinzipien sind:

Single Responsibility Principle (SRP) - jede Klasse sollte nur eine einzige Verantwortung haben.

Das Single Responsibility Principle (SRP) besagt, dass jede Klasse oder jedes Modul in einer Software nur eine einzige Verantwortung haben sollte. Dies bedeutet, dass jede Klasse ihre eigene spezifische Aufgabe hat und dafür verantwortlich ist, und keine anderen Aufgaben übernimmt, die besser in einer anderen Klasse untergebracht sind. Dadurch wird sichergestellt, dass die Klassen übersichtlich und einfach zu warten sind, und dass Änderungen an einer Klasse keine unerwarteten Auswirkungen auf andere Teile des Systems haben. Auf diese Weise wird es auch einfacher, den Code zu testen und zu ändern, ohne dass andere Teile des Systems beeinträchtigt werden.

Open-Closed Principle (OCP) - ein Modul sollte offen für Erweiterungen sein, aber geschlossen für Änderungen.

Das zweite Solid Principle lautet "Open-Closed Principle" (OCP). Das OCP besagt, dass eine Softwareeinheit (z.B. eine Klasse oder eine Methode) für Erweiterungen offen sein sollte, aber für Änderungen geschlossen sein sollte. Das bedeutet, dass neue Funktionalitäten durch Hinzufügen von neuem Code hinzugefügt werden sollten, anstatt bestehenden Code zu ändern. Dadurch wird vermieden, dass Änderungen an einer Stelle unvorhergesehene Auswirkungen auf andere Teile des Codes haben, was die Wartbarkeit und die Flexibilität der Software erhöht.

Das Open-Closed-Prinzip bietet mehrere Vorteile:

Flexibilität und Wartbarkeit: Durch die Einhaltung des OCP wird die Flexibilität und Wartbarkeit der Software verbessert. Da Änderungen an bestehendem Code vermieden werden und neue Funktionen durch Hinzufügen von Code hinzugefügt werden, wird der Code stabiler und einfacher zu warten.

Erweiterbarkeit: Das OCP ermöglicht die einfache Erweiterung der Software durch Hinzufügen neuer Funktionalitäten. Neue Funktionen können durch Hinzufügen neuer Klassen oder Interfaces implementiert werden, ohne den bestehenden Code zu ändern.

Vermeidung von Fehlern: Änderungen an bestehendem Code können unvorhergesehene Auswirkungen auf andere Teile der Software haben und zu Fehlern führen. Das OCP minimiert das Risiko von Fehlern, indem Änderungen vermieden werden.

Wiederverwendbarkeit: Durch die Verwendung von Interfaces und abstrakten Klassen, die das OCP unterstützen, können Codebausteine wiederverwendet werden, was die Effizienz und Produktivität erhöht.

Insgesamt kann das OCP dazu beitragen, dass Software robust, flexibel und einfach zu warten ist, was zu einer höheren Qualität und Zuverlässigkeit der Software führt.

Liskov Substitution Principle (LSP) - Untertypen sollten in der Lage sein, ihre Basistypen zu ersetzen, ohne dass die korrekte Ausführung des Programms beeinträchtigt wird.

Interface Segregation Principle (ISP) - Eine Klasse sollte nicht von Interfaces abhängen, die ihr nicht von Nutzen sind.

Dependency Inversion Principle (DIP) - Abhängigkeiten sollten auf abstrakten Typen, nicht auf konkreten Typen basieren.

solid-principles's People

Contributors

grundhofer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.