2016-12-26 2 views
0

Ich weiß, dass es zeitaufwendiger ist, ein Objekt im Heap als im Stapel zu finden. Und ich habe auch gesehen, dass Leute raten, mehr Klassen für verschiedene Aufgaben zu schaffen. Vielleicht ist der Code verständlicher und sauberer, wenn es mehr Klassen gibt. Aber was ist mit der Zeit? Kann mir bitte jemand das erklären.Warum ermutigen Menschen, mehr Klassen in Java zu haben, wenn mehr Objekte mehr Zeit für die Implementierung bedeuten?

+0

Viele andere Dinge bedeuten auch mehr Zeit für die Implementierung. Denke nicht in einer Dimension. – EJP

Antwort

3

Objektorientierte Programmierung bedeutet mehr Trennung der Probleme und eine gute Trennung der Konzepte.

Es versucht, Probleme näher an wie unser Verstand funktioniert. Die reale Welt hat unzählige Objekte und Dinge. Jeder hat eine Definition und Eigenschaften und auch Verhaltensweisen.

klar objektorientierte Programmierung mehr Speicher und sogar CPU-Leistung, aber mehr als zwei Jahrzehnte vor jedem dachte, dass, sobald Computer rohe Leistung und Speicher jedes Jahr erhöht wurden, Optimierung immer noch wichtig war, aber Produktivität wurde die Priorität .

Es gibt immer noch einige Fälle, in denen objektorientierte Programmierung nicht die Antwort ist, aber fast jede Geschäfts- oder Heimanwendung in der Welt wird mit objektorientierter Programmierung entwickelt, weil Unternehmen Wartbarkeit erleichtern und in der Lage sein wollen um auf Veränderungen sinnvoll und produktiv zu reagieren (um mehr zu tun und Kosten zu reduzieren).

0

Ihr Code wird in den meisten Fällen eine Lösung für ein Problem sein. Die Anzahl der Klassen ist nicht vorbestimmt. Es hängt von der Komplexität des zu lösenden Problems und der Komplexität seiner Lösung ab. Wenn der Sinn Ihres Codes nur darin besteht, die n-te Fibonacci-Nummer und nichts anderes zu finden, dann kann der Code in einer einzigen Klasse (oder gar keiner) liegen, aber wenn Ihr Code beispielsweise eine Unternehmenssoftware ist, die entwickelt wurde Ein komplexes Problem wie Banking, dann gibt es viele Faktoren, die Ihr Design und damit die Anzahl der Klassen entscheiden. Zwei der wichtigsten Faktoren sind Wartbarkeit und Erweiterbarkeit Ihres Codes.

Sie sollten sich die SOLID Prinzipien für Objektorientiertes Design ansehen, die zuerst von Robert C. Martin benannt wurden.

Sobald Sie durch sie gehen und mehr auf OO Design Ich hoffe "mehr Klassen vs weniger Klassen" wird keine Frage für Sie sein.

0

Ich glaube nicht, dass es eine Entscheidung ist, um die Leistung zu steigern, da der Unterschied zur Laufzeit IMHO irrelevant ist. Ich denke nicht, dass sich die Entwicklungszeit sehr unterscheiden wird. Ich denke, was hier zu verstehen ist, ist the Single Responsibility Principle. Also denke ich, das Kriterium ist nicht "erstelle mehr Klassen", sondern "benutze nicht dieselbe Klasse für zwei verschiedene Dinge" (was am Ende dazu führt, dass du mehr Klassen erstellst, aber nicht dasselbe ist).

Was ich zu der Zeit, die ich gearbeitet habe, realisiert habe, ist, dass, während das System wächst, das Wichtigste ist , wie es es tut. Wenn Sie weniger Klassen erstellen, werden Sie mit Klassen von 30 k Zeilen enden, die vollständig nicht effizient debuggen können. Gleiches gilt für 400 Zeilen Methoden, die 20 verschiedene Dinge machen. Dies bedeutet viel zusätzliche Zeit verschwendet wie neue Funktionen hinzuzufügen und bestehende zu reparieren werden immer komplexer. Am Ende müssen Sie ein bestimmtes Kriterium anwenden, um Ihren Code zu trennen und zu vermeiden, dass Sie auf die Situation kommen, und das Prinzip der einfachen Verantwortung scheint ein guter zu sein.

Verwandte Themen