{"id":34855,"date":"2019-10-31T22:00:51","date_gmt":"2019-10-31T19:00:51","guid":{"rendered":"https:\/\/prohoster.info\/blog\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik\/"},"modified":"2019-10-31T22:00:51","modified_gmt":"2019-10-31T19:00:51","slug":"10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","title":{"rendered":"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/129b610bc2576f8d753dfa72395f89f6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nIch treffe h\u00e4ufig auf Entwickler, die noch nie von den SOLID-Prinzipien geh\u00f6rt haben (wir <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillbox\/blog\/442928\/\">haben ausf\u00fchrlich dar\u00fcber hier berichtet<\/a><\/noindex>. \u2014 Anm. d. Red.) oder objekorientierter Programmierung (OOP), oder die davon geh\u00f6rt haben, sie aber nicht praktisch anwenden. In diesem Artikel werden die Vorteile der OOP-Prinzipien beschrieben, die Entwicklern in ihrem t\u00e4glichen Arbeiten helfen. Einige von ihnen sind gut bekannt, andere weniger, sodass der Artikel sowohl f\u00fcr Anf\u00e4nger als auch f\u00fcr erfahrene Programmierer n\u00fctzlich sein wird.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Wir erinnern daran:<\/b> <i>F\u00fcr alle Leser von \"Habr\" gibt es einen Rabatt von 10.000 Rubel bei der Anmeldung zu einem beliebigen Kurs von Skillbox mit dem Rabattcode \"Habr\".<\/i><\/p>\n<p><b>Skillbox empfiehlt:<\/b> Online-Bildungskurs <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/java\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=JAVDEV&amp;utm_content=articles&amp;utm_term=10oop\">\"Java-Entwickler\"<\/a><\/noindex>.<\/p><\/blockquote>\n<p><\/p>\n<h3>DRY (Don\u2019t Repeat Yourself)<\/h3>\n<p>\nEin recht einfaches Prinzip, dessen Inhalt sich aus dem Namen ableitet: \"Wiederhole dich nicht\". F\u00fcr Programmierer bedeutet das, dass du redundanten Code vermeiden und Abstraktion in der Arbeit nutzen solltest.<\/p>\n<p>Wenn es im Code zwei sich wiederholende Abschnitte gibt, sollten diese in eine Methode zusammengefasst werden. Wenn ein festgelegter Wert mehr als einmal verwendet wird, sollte er in eine \u00f6ffentliche Konstante umgewandelt werden.<\/p>\n<p>Dies dient dazu, den Code zu vereinfachen und dessen Wartung zu erleichtern, was das Hauptziel der OOP ist. Man sollte auch nicht \u00fcbertreiben, denn derselbe Code wird sowohl mit OrderId als auch mit SSN nicht bestehen k\u00f6nnen.<\/p>\n<h3>Kapselung von \u00c4nderungen<\/h3>\n<p>\nDie Softwareprodukte der meisten Unternehmen unterliegen st\u00e4ndigen Weiterentwicklungen. Das bedeutet, dass \u00c4nderungen am Code vorgenommen und dieser gewartet werden muss. Die Kapselung kann hierbei helfen, das Leben zu erleichtern. Sie erm\u00f6glicht eine effizientere Testung und Wartung des bestehenden Codes. <noindex><a rel=\"nofollow\" href=\"http:\/\/javarevisited.blogspot.com\/2011\/12\/factory-design-pattern-java-example.html\">Hier ist ein Beispiel<\/a><\/noindex>.<\/p>\n<p>Wenn Sie in Java programmieren, <noindex><a rel=\"nofollow\" href=\"http:\/\/javarevisited.blogspot.sg\/2012\/03\/private-in-java-why-should-you-always.html#axzz559dyoLSA\">weisen Sie Methoden und Variablen standardm\u00e4\u00dfig als privat zu<\/a><\/noindex>.<\/p>\n<h3>Prinzip der Offenheit\/Schlie\u00dfung<\/h3>\n<p>\nDieses Prinzip l\u00e4sst sich leicht merken, wenn Sie die folgende Aussage lesen: \u201eProgrammierobjekte (Klassen, Module, Funktionen usw.) sollten offen f\u00fcr Erweiterungen, aber geschlossen f\u00fcr \u00c4nderungen sein.\u201c In der Praxis bedeutet dies, dass sie ihr Verhalten \u00e4ndern k\u00f6nnen, ohne den Quellcode zu modifizieren.<\/p>\n<p>Das Prinzip ist wichtig, wenn \u00c4nderungen am Quellcode eine \u00dcberarbeitung, Modultests und andere Verfahren erfordern. Code, der dem Prinzip der Offenheit\/Schlie\u00dfung folgt, ver\u00e4ndert sich nicht bei Erweiterungen, daher gibt es damit wesentlich weniger Probleme.<\/p>\n<p>Hier ist ein Beispiel f\u00fcr Code, der dieses Prinzip verletzt.<\/p>\n<p><img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/85d53972bef28713087acc428deebc3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nWenn \u00c4nderungen erforderlich sind, kann dies viel Zeit in Anspruch nehmen, da alle Codeteile angepasst werden m\u00fcssen, die mit dem fraglichen Abschnitt verbunden sind.<\/p>\n<p>\u00dcbrigens ist das Prinzip der Offenheit\/Schlie\u00dfung eines der SOLID-Prinzipien.<\/p>\n<h3>Das Prinzip der einzelnen Verantwortung (SRP)<\/h3>\n<p>\nEin weiteres Prinzip aus der SOLID-Gruppe. Es besagt, dass \"es nur einen Grund gibt, warum eine Klasse ge\u00e4ndert werden sollte.\" Eine Klasse hat nur eine Aufgabe. Sie kann mehrere Methoden haben, aber jede dient nur zur L\u00f6sung einer gemeinsamen Aufgabe. Alle Methoden und Eigenschaften sollten ausschlie\u00dflich diesem Zweck dienen. <\/p>\n<p><img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/7332d424f27e091192cbbb8dacb13d01.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nDer Wert dieses Prinzips besteht darin, dass es die Verbindung zwischen einer einzelnen Softwarekomponente und dem Code schw\u00e4cht. Wenn mehr als eine Funktionalit\u00e4t in eine Klasse eingef\u00fcgt wird, entsteht eine Verbindung zwischen den beiden Funktionen. Wenn eine von ihnen ge\u00e4ndert wird, besteht eine gro\u00dfe Wahrscheinlichkeit, dass die zweite, die mit der ersten verbunden ist, beeintr\u00e4chtigt wird. Das bedeutet eine Erh\u00f6hung der Testzyklen, um alle Probleme im Voraus zu identifizieren.<\/p>\n<h3>Prinzip der Abh\u00e4ngigkeitsinversion (DIP)<\/h3>\n<p>\n<img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/eb1e09cceee028f88fa83fd8d30a189a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nOben finden Sie ein Codebeispiel, in dem der AppManager vom EventLogWriter abh\u00e4ngt, der wiederum eng mit dem AppManager verbunden ist. Wenn eine andere M\u00f6glichkeit zur Anzeige einer Benachrichtigung erforderlich ist, sei es Push, SMS oder E-Mail, muss die Klasse AppManager ge\u00e4ndert werden.<\/p>\n<p>Das Problem kann mit DIP gel\u00f6st werden. Statt den AppManager anzufordern, fragen wir den EventLogWriter an, der \u00fcber das Framework eingef\u00fchrt wird.<\/p>\n<p>DIP erm\u00f6glicht es, einzelne Module problemlos durch andere zu ersetzen, indem das Abh\u00e4ngigkeitsmodul ge\u00e4ndert wird. Dies erm\u00f6glicht es, ein Modul zu \u00e4ndern, ohne die anderen zu beeinflussen.<\/p>\n<h3>Komposition statt Vererbung<\/h3>\n<p>\n<img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/b97ebf8c423f415298dc10ae4e14fe89.jpg\" style=\"display:block;margin: 0 auto;\" \/>Die beiden Hauptmethoden zur Wiederverwendung von Code sind Vererbung und Komposition, wobei jede sowohl Vorteile als auch Nachteile hat. \u00dcblicherweise wird der zweiten Methode der Vorzug gegeben, da sie flexibler ist.<\/p>\n<p>Die Komposition erm\u00f6glicht es, das Verhalten einer Klasse zur Laufzeit durch das Setzen ihrer Eigenschaften zu \u00e4ndern. Bei der Implementierung von Schnittstellen kommt Polymorphie zur Anwendung, die eine flexiblere Umsetzung erm\u00f6glicht.<\/p>\n<p>Sogar \"Effective Java\" von Joshua Bloch empfiehlt, der Komposition den Vorzug vor der Vererbung zu geben.<\/p>\n<h3>Das Liskov-Substitutionsprinzip (LSP)<\/h3>\n<p>\nEin weiteres Prinzip aus dem SOLID-Werkzeugkasten. Es besagt, dass Untertypen durch ihren Supertyp ersetzt werden k\u00f6nnen. Das bedeutet, dass Methoden und Funktionen, die mit der Superklasse arbeiten, problemlos auch mit ihren Unterklassen arbeiten sollten.<\/p>\n<p>Das LSP steht sowohl im Zusammenhang mit dem Prinzip der Einzelverantwortung als auch mit dem Prinzip der Aufteilung der Verantwortung. Wenn eine Klasse mehr Funktionalit\u00e4t bietet als die Unterklasse, wird diese einige Funktionen nicht unterst\u00fctzen, was dieses Prinzip verletzt.<\/p>\n<p>Hier ist ein Codeabschnitt, der dem LSP widerspricht.<\/p>\n<p><img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/8c412a2cb4d1f7e53f69afc4ef46a967.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nDie Methode area(Rectangle r) berechnet die Fl\u00e4che eines Rechtecks. Das Programm wird nach der Ausf\u00fchrung von Square abgebrochen, da Square hier kein Rechteck ist. Laut dem Liskov\u2019schen Substitutionsprinzip sollten Funktionen, die Referenzen auf Basisklassen verwenden, in der Lage sein, auch Objekte abgeleiteter Klassen ohne zus\u00e4tzliche Anweisungen zu verwenden.<\/p>\n<p>Dieses Prinzip, das eine spezifische Definition eines Subtyps darstellt, wurde 1987 von Barbara Liskov auf einer Konferenz in einem Hauptvortrag mit dem Titel \u201eDatenabstraktion und Hierarchie\u201c vorgestellt \u2013 daher der Name.<\/p>\n<h3>Prinzip der Schnittstellentrennung (ISP)<\/h3>\n<p>\nEin weiterer SOLID-Prinzip. Demnach sollte eine nicht verwendete Schnittstelle nicht implementiert werden. Die Einhaltung dieses Prinzips hilft dem System, flexibel zu bleiben und eine einfache Refaktorisierung bei \u00c4nderungen an den Arbeitslogiken zu erm\u00f6glichen.<\/p>\n<p>Diese Situation tritt h\u00e4ufig auf, wenn eine Schnittstelle mehrere Funktionen enth\u00e4lt und der Kunde nur eine davon ben\u00f6tigt.<\/p>\n<p>Da das Schreiben einer Schnittstelle eine komplexe Aufgabe ist, wird es problematisch sein, sie nach Abschluss der Arbeit zu \u00e4ndern, ohne etwas zu st\u00f6ren.<\/p>\n<p>Ein Vorteil des ISP-Prinzips in Java ist, dass zuerst alle Methoden implementiert werden m\u00fcssen, bevor sie von Klassen verwendet werden k\u00f6nnen. Daher erm\u00f6glicht das Prinzip, die Anzahl der Methoden zu reduzieren.<\/p>\n<p><img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/ea3e314e9f7766e8c1d3ce46d0dcdc09.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h3>Programmierung f\u00fcr das Interface, nicht f\u00fcr die Implementierung<\/h3>\n<p>\nHier ist alles im Namen klar. Die Anwendung dieses Prinzips f\u00fchrt zur Erstellung flexibler Codes, der mit jeder neuen Implementierung des Interfaces arbeiten kann.<\/p>\n<p>Es sollte der Typ des Interfaces f\u00fcr Variablen, R\u00fcckgabetypen oder den Argumenttyp einer Methode verwendet werden. Beispiel \u2013 Verwendung von SuperClass und nicht von SubClass.<\/p>\n<p>Das bedeutet:<\/p>\n<p><i>List numbers = getNumbers();<\/i><\/p>\n<p>Nicht:<\/p>\n<p><i>ArrayList numbers = getNumbers();<\/i><\/p>\n<p>Hier ist eine praktische Umsetzung dessen, was oben beschrieben wurde.<\/p>\n<p><img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/8bbcd8342a9870bc28272f0550a8664c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h3>Das Delegationsprinzip<\/h3>\n<p>\nEin verbreitetes Beispiel sind die Methoden equals() und hashCode() in Java. Wenn zwei Objekte verglichen werden sollen, wird diese Aktion an die entsprechende Klasse delegiert, anstatt an die Clientklasse.<\/p>\n<p>Ein Vorteil des Prinzips besteht darin, dass Code-Duplizierung vermieden wird und das Verhalten relativ einfach ge\u00e4ndert werden kann. Es ist auch auf die Delegierung von Ereignissen anwendbar.<\/p>\n<p><img decoding=\"async\" alt=\"10 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte\" src=\"\/wp-content\/uploads\/2019\/06\/c9ca40cb27e288e5e31ebfba76fa36a5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nAll diese Prinzipien erm\u00f6glichen es, flexibleren, sch\u00f6neren und zuverl\u00e4ssigeren Code mit hoher Koh\u00e4sion und geringem Coupling zu schreiben. Nat\u00fcrlich ist die Theorie wichtig, aber um sicherzustellen, dass ein Entwickler die erworbenen Kenntnisse tats\u00e4chlich anwendet, ist praktische Erfahrung erforderlich. Der n\u00e4chste Schritt nach dem Erlernen der OOP-Prinzipien k\u00f6nnte das Studium von Entwurfsmustern sein, um h\u00e4ufige Softwareentwicklungsprobleme zu l\u00f6sen.<\/p>\n<blockquote><p><b>Skillbox empfiehlt:<\/b><\/p>\n<ul>\n<li>Praktischer Kurs <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/agima\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=AGIMA&amp;utm_content=articles&amp;utm_term=10oop\">\u201eMobile Entwickler PRO\u201c<\/a><\/noindex>.<\/li>\n<li>Angewandter Online-Kurs <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/python-data\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=PTNANA&amp;utm_content=articles&amp;utm_term=10oop\">Datenanalyst mit Python<\/a><\/noindex>.<\/li>\n<li>Zweij\u00e4hriger praktischer Kurs <noindex><a rel=\"nofollow\" href=\"https:\/\/iamwebdev.skillbox.ru\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=WEBDEVPRO&amp;utm_content=articles&amp;utm_term=10oop\">\"Ich bin PRO Web-Entwickler\"<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/blockquote>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillbox\/blog\/454314\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043d\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b\u0438 \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 SOLID (\u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e \u043d\u0438\u0445 \u0437\u0434\u0435\u0441\u044c. \u2014 \u041f\u0435\u0440.) \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u041e\u041e\u041f), \u0438\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u043b\u0438, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u0445 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u041e\u041e\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0432 \u0435\u0433\u043e \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u043c \u0442\u0440\u0443\u0434\u0435. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u0434\u0440\u0443\u0433\u0438\u0435 \u2014 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u0442\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26244,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34855","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u043d\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b\u0438 \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 SOLID (\u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e \u043d\u0438\u0445 \u0437\u0434\u0435\u0441\u044c. \u2014 \u041f\u0435\u0440.) \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u041e\u041e\u041f), \u0438\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u043b\u0438, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u0445 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u041e\u041e\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0432 \u0435\u0433\u043e \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u043c \u0442\u0440\u0443\u0434\u0435. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u0434\u0440\u0443\u0433\u0438\u0435 \u2014 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u0442\u0430\u043a\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd4710 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u043d\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b\u0438 \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 SOLID (\u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e \u043d\u0438\u0445 \u0437\u0434\u0435\u0441\u044c. \u2014 \u041f\u0435\u0440.) \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u041e\u041e\u041f), \u0438\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u043b\u0438, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u0445 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u041e\u041e\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0432 \u0435\u0433\u043e \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u043c \u0442\u0440\u0443\u0434\u0435. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u0434\u0440\u0443\u0433\u0438\u0435 \u2014 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u0442\u0430\u043a\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:00:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:51+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd4710 Prinzipien der objektorientierten Programmierung, die jeder Entwickler kennen sollte | ProHoster","description":"Mir begegnen h\u00e4ufig Entwickler, die noch nie von den SOLID-Prinzipien geh\u00f6rt haben (wir haben sie hier ausf\u00fchrlich beschrieben. \u2014 Anm. d. Red.) oder von objektorientierter Programmierung (OOP), oder sie haben davon geh\u00f6rt, wenden sie aber nicht in der Praxis an. In diesem Artikel werden die Vorteile der OOP-Prinzipien beschrieben, die den Entwicklern in ihrem t\u00e4glichen Arbeiten helfen. Einige sind gut bekannt, andere weniger.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd4710 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a | ProHoster","og:description":"\u041c\u043d\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b\u0438 \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 SOLID (\u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e \u043d\u0438\u0445 \u0437\u0434\u0435\u0441\u044c. \u2014 \u041f\u0435\u0440.) \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u041e\u041e\u041f), \u0438\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u043b\u0438, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u0445 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u041e\u041e\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0432 \u0435\u0433\u043e \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u043c \u0442\u0440\u0443\u0434\u0435. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u0434\u0440\u0443\u0433\u0438\u0435 \u2014 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u0442\u0430\u043a","og:url":"https:\/\/prohoster.info\/de\/blog\/novosti-interneta\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:00:51+00:00","article:modified_time":"2019-10-31T19:00:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34855","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:51:32","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:14:05","updated":"2026-01-21 20:51:32"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/34855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=34855"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/34855\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/26244"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=34855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=34855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=34855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}