Heim  >  Artikel  >  Java  >  Verbessern Sie die Wiederverwendbarkeit von Java-Code

Verbessern Sie die Wiederverwendbarkeit von Java-Code

angryTom
angryTomOriginal
2019-07-16 17:35:182237Durchsuche

Welche Methoden und Maßnahmen gibt es, um die Wiederverwendbarkeit von Java-Code zu verbessern? Im Folgenden werden drei Maßnahmen erläutert, um die Wiederverwendbarkeit von Java-Code zu verbessern~

1. Überschreiben von Instanzmethoden einer Klasse

Das Erreichen der Wiederverwendung von Code durch Klassenvererbung ist keine exakte Technik zur Wiederverwendung von Code und daher nicht der idealste Mechanismus zur Wiederverwendung von Code. Vererbung bringt immer einige redundante Methoden und Datenelemente mit sich, was den Code, der eine Methode in einer Klasse wiederverwendet, immer komplizierter macht.

Darüber hinaus macht die Abhängigkeit der abgeleiteten Klasse von der übergeordneten Klasse den Code noch komplizierter: Änderungen an der übergeordneten Klasse können sich auf die untergeordnete Klasse auswirken. Es ist für uns schwierig, uns daran zu erinnern, wenn wir entweder die übergeordnete Klasse ändern oder Welche Methode wird von der Unterklasse überschrieben und welche Methode wird von der Unterklasse nicht überschrieben? Schließlich ist es manchmal nicht klar, ob die überschriebene Methode in der Unterklasse die entsprechende Methode in der übergeordneten Klasse aufrufen soll.

Jede Methode, die die Aufgabe eines einzelnen Konzepts ausführt, sollte für sich genommen der bevorzugte wiederverwendbare Code sein. Um diese Art von Code wiederzuverwenden, müssen wir zum prozedurorientierten Programmiermodell zurückkehren und die Klasseninstanzmethoden in globale Prozeduren verlagern.

Um die Wiederverwendbarkeit dieser Art von Prozedur zu verbessern, sollte der Prozedurcode wie eine statische Dienstprogrammmethode geschrieben werden: Er kann nur seine eigenen Eingabeparameter verwenden, kann nur andere globale Prozeduren aufrufen und keine verwenden nicht-lokale Variable. Diese Beschränkung auf externe Abhängigkeiten vereinfacht die Anwendung von Prozeduren und ermöglicht deren problemlosen Einsatz überall.

Da diese Art der Organisation dem Code immer eine klarere Struktur verleiht, kann natürlich auch Code, der die Wiederverwendbarkeit nicht berücksichtigt, dennoch davon profitieren.

In Java können Methoden nicht unabhängig von einer Klasse existieren. Zu diesem Zweck können wir verwandte Prozesse in unabhängige Klassen organisieren und diese Prozesse als öffentliche statische Methoden definieren. Klassen werden auch über mehrere Schnittstellen implementiert bietet hervorragende Unterstützung für die Wiederverwendung von Code.

2. Wählen Sie den einfachsten Parameterschnittstellentyp

Je einfacher die zur Beschreibung des Parameterobjekts erforderliche Schnittstelle ist, desto größer ist die Chance, dass andere Klassen implementiert die Schnittstelle. Je größer der Wert, desto mehr Klassen können als Parameter verwendet werden. Dies lässt sich leicht anhand des folgenden Beispiels erkennen:

static public boolean areOverlapping(Window window1, Window window2) {...}

Mit dieser Methode wird überprüft, ob sich zwei Fenster überlappen . Wenn diese Methode nur die Ermittlung der rechtwinkligen Koordinaten der beiden Fenster aus den Parametern erfordert, ist es eine bessere Wahl, die beiden Parameter entsprechend zu vereinfachen. Manchmal verfügt die Schnittstelle, die die Parameteranforderungen beschreibt, möglicherweise über zu viele Methoden.

An diesem Punkt sollten wir eine neue öffentliche Schnittstelle im globalen Namespace zur Wiederverwendung durch anderen Code definieren, der mit dem gleichen Problem konfrontiert ist. Wenn wir Parameter wie Funktionszeiger in der Sprache C verwenden müssen, ist die Erstellung einer eindeutigen Schnittstelle, die die Parameteranforderungen beschreibt, die beste Wahl. Nehmen wir zum Beispiel den folgenden Prozess an:

static public void sort(List list, SortComparison comp) {...}

Diese Methode verwendet das im Parameter bereitgestellte Vergleichsobjekt comp und vergleicht es to Sortiert die Objekte in einer bestimmten Liste. Die einzige Anforderung für die Sortierung des Comp-Objekts besteht darin, eine Vergleichsmethode aufzurufen, sodass die SortComparison-Schnittstelle nicht an anderer Stelle wiederverwendet werden kann.

3. Parametertypen in Schnittstellen ändern

Bei der objektorientierten Programmierung besteht der eigentliche Sinn der Code-Wiederverwendung darin, mehrere Schnittstellenparametertypen zu verwenden Statefulness statt Klassenvererbung erreichen wir durch Programmierschnittstellen statt Klassen durch die Wiederverwendung von Code. Wenn alle Parameter einer Methode Verweise auf eine bekannte Schnittstelle sind, kann diese Methode Objekte bearbeiten, deren Klassen zum Zeitpunkt des Schreibens des Methodencodes noch nicht einmal vorhanden sind. Technisch gesehen ist es die Methode, die wiederverwendbar ist, nicht das an die Methode übergebene Objekt.

Nehmen wir zum Beispiel an, dass es eine solche Methode gibt:

static public boolean areAnyOverlapping(Collection rects) {...}

Diese Methode wird verwendet, um zu prüfen, ob Ob sich eines der rechteckigen Objekte überlappt. Wenn wir innerhalb dieser Methode eine Schleife verwenden, um nacheinander auf jedes Objekt in der Sammlung zuzugreifen, wie können wir dann auf den rechteckigen Bereich des Objekts zugreifen, wenn wir das Objekt nicht in einen Schnittstellentyp wie „Rectangular“ umwandeln können? Die einzige Möglichkeit besteht darin, das Objekt in seine eindeutige Klassenform umzuwandeln. Das bedeutet, dass die Methode den Objekttyp, den sie bearbeitet, im Voraus kennen muss, wodurch die Wiederverwendung der Methode auf diese Objekttypen beschränkt wird.

Für weitere relevante Kenntnisse klicken Sie bitte auf: Java-Tutorial

Das obige ist der detaillierte Inhalt vonVerbessern Sie die Wiederverwendbarkeit von Java-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn