Entwurfsmuster helfen einem Programmierer, sauberen, effizienten und sich nicht wiederholenden Code mit weniger Kopplung oder Abhängigkeit zwischen den einzelnen Operationseinheiten zu schreiben. Wann immer ein Programmierer die Anforderungen des Kunden analysiert, ist das geeignete Entwurfsmuster für die Codeimplementierung die erste Lösung, um die er sich kümmern muss. Der Code würde später skaliert; Einige zusätzliche Einschränkungen können, sofern sie hinzugefügt werden sollen, ebenfalls integriert werden.
Entwurfsmuster werden immer im Hinblick auf Skalierbarkeit und saubere Implementierung ausgewählt.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Wir entscheiden uns für Vorlagen, wenn wir diese durch bestimmte Implementierungen füllen möchten; diese werden Vorlagen genannt.
Und im Codierungsbereich verwenden wir diese Paradigmen in den folgenden Geschäftsszenarien.
Szenario 1 –
Sie sollen eine webbasierte Lösung für eine Vorlage in Java entwerfen, in der Sie aufgefordert werden, die charakteristischen Eigenschaften eines Fahrzeugs wie seine Geschwindigkeitsberechnungsformel, Drehmomentberechnung usw. zu implementieren. Bei einem Fahrrad wäre das also anders als Was wäre für ein Auto, und wenn wir die Skalierbarkeitsperspektive sehen, dann fügen wir eine Basisvorlage hinzu, die nur das äußere Gerüst dieser berechnungsbezogenen Methoden enthält, und dann haben wir einfach Varianten dieser Implementierungen in unseren Code eingefügt und so eine Flexibilität geschaffen Design. Wenn nur ein Benutzer diese Vorlage sieht, bekommt er eine Vorstellung von den von Ihnen angebotenen Funktionalitäten und freut sich auf die entsprechenden Kurse.
Szenario 2 –
Eine andere Ursache kann darin bestehen, eine gemeinsame Vorlage für Datenbankklassen zu generieren, die Sie in Ihrem Projekt aufrufen werden; Sie verwenden möglicherweise Oracle, MySQL oder DB2 und freuen sich wahrscheinlich in verschiedenen Codierungsszenarien darauf, zu unterschiedlichen Zeitpunkten eine Verbindung zu ihnen herzustellen. Daher können Sie in der Vorlage Eigenschaften wie Benutzername, Kennwort, Verbindung abrufen usw. eingeben und die Erweiterungsklassen geben die gewünschten Implementierungsdetails an.
Ein Java-Entwickler weiß, wie man diese Art von Funktionalität implementiert!! Ja, eine abstrakte Klasse ist die richtige Antwort; Ich hoffe, Sie wissen, dass wir immer dann, wenn wir Szenarien haben, in denen eng verwandte Entitäten in eine Lösung gebracht werden sollen, abstrakte Klassen wählen (andernfalls lösen die Schnittstellen auch unseren Zweck).
1. Machen Sie die Basisklasse abstrakt, die auch die Vorlagenmethoden und die abstrakten Methoden enthält.
2. Die Vorlagenmethoden sind endgültiger Natur und werden sich danach nicht ändern.
3. Die abstrakten Methoden müssen über unterstützenden Geschäftslogikcode in den Implementierungsklassen implementiert werden.
4. Die Methode könnte in untergeordneten Klassen abstrahiert werden, wenn sie nicht nur dort implementiert werden soll.
5. Auch die angemessene Behandlung von Ausnahmen ist ein wichtiges Szenario.
6. Richtige Wahl, was als abstrakt gekennzeichnet werden soll und was nicht.
Die Methoden mit Körpern in der Basisklasse werden als endgültiger Typ festgelegt, da sie nicht überschrieben werden dürfen. Wie bei der Fahrzeugklasse kann die Drehzahlberechnung gleich erfolgen.
Hier unten haben wir das auf Java-Vorlagen basierende Beispiel definiert, es enthält die Beispielimplementierung desselben –
public abstract Vehicle { String fuelType; Int countOfSeats; public abstract double calcSpeed() throws Exception; public abstract double calcTorque() throws Exception; public final void templateMethod() { Task1(); Task2(); Task3(); } public Bike extends Vehicle { @Override public abstract double calcSpeed() throws Exception { try { return distance/time; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } @Override public abstract double calcTorque() throws Exception { try { return radialLength * force; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } } public car extends Vehicle { Int doorCount; // door doesn’t exist in all vehicles so has been added here @Override public abstract double calcSpeed() throws Exception { try { return distance/time; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } @Override public abstract double calcTorque() throws Exception { try { return radialLength * force; } Catch(Exception e) { System.out.println(e.printStackTrace()); } } }
Sie können Eclipse oder andere Online-Kompilierungsplattformen verwenden, um diese Implementierung anhand Ihrer eigenen Implementierungen zu überprüfen.
1. Vorzugsweise sollte Java 8 installiert sein.
2. Systemvariablen müssen für JRE ordnungsgemäß konfiguriert sein.
3. Außerdem ist eine IDE wie Eclipse erforderlich, die automatisch syntaktische Fehler überprüft.
4. Debuggen nur mit der IDE.
5. Plug-ins für die Analyse des Vorlagendesigns.
6. Klassendiagramm-Assoziationstools, um die übergeordnete Vererbungsbeziehung zwischen den Klassen zu ermitteln, die Sie in der Implementierung des Vorlagenentwurfsmusters erstellt haben.
7. Jedes Windows, Linux oder MAC würde Ihre Aufgabe erledigen.
Kennen Sie die Konzepte von Schnittstellenimplementierungen? Mit Java 8, das neue Funktionen bietet, können Sie die Schnittstellenimplementierung anhand der oben genannten abgeleiteten Klassen ausprobieren und verschiedene Geschäftsszenarien ausprobieren; In Java 8 und höheren Versionen können Sie die abstrakten Methoden von Schnittstellen in den Implementierungsklassen frei überschreiben. Werfen Sie dazu einen Blick in die von Oracle bereitgestellte Dokumentation.
Es wäre hilfreich, wenn Sie auch andere Entwurfsmuster untersuchen würden, da diese wichtig sind und von erfahrenen Java-Entwicklern in der gesamten Branche erwartet werden.
Das obige ist der detaillierte Inhalt vonVorlage in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!