3 Stimmen

Wann sollte man von prozeduraler zu OOP wechseln?

In den meisten Diskussionen über OOP wird gesagt, dass der Vorteil in der Wiederverwendbarkeit liegt. Man macht sich die Mühe, seine Klassen zu definieren, und spart später Zeit, indem man viele Instanzen und Erweiterungen dieser Objekte erstellen kann.

Eine Folge davon scheint zu sein, dass man erst dann von der prozeduralen zur OOP-Programmierung wechseln sollte, wenn der Nachteil, alles in Objekte zu schreiben, der Zeitersparnis gleichkommt.

Wann ist generell ein guter Zeitpunkt für den Wechsel von prozeduraler zu OOP-Programmierung? Gibt es Anzeichen/Merkmale, auf die Sie generell achten, um zu wissen, dass Ihr Projekt umgestellt werden muss?

4voto

zanlok Punkte 1608

Ich gehe davon aus, dass diese Frage aus dem Blickwinkel eines Anfängers gestellt wird. Sobald ein Programmierer Erfahrung mit dem Schreiben von objektorientiertem Code hat, kann man sicherlich ein Projekt von Anfang an mit dieser Architektur erstellen. Ich würde sogar behaupten, dass ein Top-Down-Ansatz bei größeren Projekten sehr viel Zeit sparen kann.

Für das von Ihnen skizzierte Bottom-up-Szenario müssten Sie allerdings ein Gefühl dafür entwickeln. Referenz este wikipedia-Artikel für weitere Informationen über die verschiedenen Ansätze, allgemein gesprochen.

Speziell für PHP würde ich sagen, dass Sie diesen Ansatz für eine Migration verwenden können:

  1. Nehmen Sie so viel Code wie möglich (z.B.: verwandte Funktionen) und platzieren Sie sie in Include-Dateien.
  2. Erstellen Sie eine Containerklasse für diese Datei. Sie können damit beginnen, einfach alle Funktionen zu verwenden, indem Sie sie in einer statisch oder sogar eine statische (Singleton) Klasse verwenden.
  3. Allmähliche Umstellung auf ein Instanzparadigma anstelle des Paradigmas der globalen Daten / statischen Funktionen, das die Schlechtigkeit der prozeduralen Programmierung ausmacht.

Dieser Prozess ist eine großartige Möglichkeit, sich mit OO vertraut zu machen, und am Ende werden Sie die Vorteile erkennen. Es wird Ihnen auch meinen anfänglichen Punkt vermitteln: dass es viel länger dauert, etwas in OO umzuwandeln, als wenn man von Anfang an mit einem halbwegs guten Design (hoher Ordnung) beginnt.

3voto

Jonah Punkte 9833

Wenn es sich nicht um eine sehr, sehr einfache Bewerbung handelt, ist jetzt der richtige Zeitpunkt. In der Tat kann man darüber streiten, ob Sie immer Programm OOly, weil es schwieriger wird, wenn Sie Ihr Programm in Zukunft erweitern wollen.

1voto

Hank Punkte 7829

Ich denke, es kommt auf den Kontext an. Bei Grafikanwendungen, die ein bestehendes OOP-Framework verwenden, ist der Kompromiss unmittelbar - in manchen Kontexten muss man sich die Mühe machen, prozeduralen GUI-Code zu schreiben.

Wenn Sie jedoch Rohdatenverarbeitung betreiben und nicht mit einem OOP-Framework interagieren, werden Sie vielleicht feststellen, dass OOP keinen Sinn macht.

1voto

GolezTrol Punkte 111587

Es kann sehr zeitaufwendig sein, innerhalb eines Projekts auf OOP umzustellen. Ich bezweifle, dass es sich lohnen würde, denn es erfordert eine Menge Kodierung, verdammt viele Tests und dann eine Menge Refactoring. Das ganze Konzept von OOP ist anders als das von PP.

Ich würde daher empfehlen, nicht innerhalb des Projekts zu wechseln, sondern so bald wie möglich OOP für neue Projekte zu verwenden. Wenn Sie sich wohl fühlen, können Sie anfangen, ein OOP-Design für Ihre bestehenden Projekte zu entwerfen und nach und nach Funktionen in OOP zu implementieren. Das wird allerdings eine Menge Arbeit sein, und es wird sich wahrscheinlich so anfühlen, als würden Sie das gesamte Projekt neu schreiben.

0voto

Jonathan Wood Punkte 61798

Ich würde anderswo nach Anzeichen dafür suchen, dass Sie wechseln müssen. Trotz des ganzen Hypes - und ich bin ein großer Befürworter von OOP - ist die Wiederverwendung von Code mit OOP-Sprachen oft nur geringfügig besser.

OOP ist einfach ein weiteres Werkzeug, um Ihren Code zu organisieren, wie früher die Funktionen. Es ist ein großartiges und nützliches Werkzeug. Aber die Hauptvorteile liegen darin, dass es einfacher ist, Ihren Code zu schreiben und zu pflegen.

Wenn ich an meiner Stelle wäre und die Umstellung auf OOP eine fast vollständige Neuprogrammierung erfordern würde, würde ich damit warten, bis die Vorteile der Umstellung deutlich werden. Wenn Ihr Code funktioniert, wüsste ich nicht, warum Sie ihn umschreiben sollten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X