定義
一部のステップをサブクラスに延期しながら、アルゴリズムの操作のフレームワークを定義します。これにより、サブクラスは、アルゴリズムの構造を変更せずに、アルゴリズムの特定のステップを再定義できます。
役割
このデザインパターンの役割分担は比較的単純です
抽象テンプレートクラス
具象テンプレートクラス
抽象テンプレートクラスには、いくつかのメソッドが含まれています: テンプレートメソッド、具象メソッド、抽象メソッド、フック方式。
テンプレートメソッド
は、特定のメソッド、実装される抽象メソッド、フックメソッドなどを呼び出すアルゴリズムの実装手順を決定します。アルゴリズム実行用のテンプレートです。
具象メソッド
具象メソッドはアルゴリズムのより安定した部分であるため、メソッドの具体的な実装は抽象クラスで与えられます。
抽象メソッド
抽象メソッドは、定義にあるとおり、サブクラスの実装が遅延されるメソッドです。
フックメソッド
一般的なテンプレートメソッドはデフォルトの実装を提供します。このメソッドは状況に応じてサブクラスでオーバーライドしたり書き換えたりできます。
UML
実装プロセス
/** * Created by tiantian on 2018/7/28 */public abstract class AbstractTemplateMethod { public void templateMethod() { implementedMethod(); abstractMethod(); hookMethod(); // ... more than method invoke } public void anotherTemplateMethod() { // do other things } public abstract void abstractMethod(); public void hookMethod() {} public void implementedMethod() { System.out.println("I have been implemented in TemplateMethod class."); } // ... more than method abstract or implemented.}
/** * Created by tiantian on 2018/7/28 */public class ConcreteTempleteMethod extends AbstractTemplateMethod { @Override public void abstractMethod() { System.out.println("Do something"); } @Override public void hookMethod() { System.out.println("Do something in hookMethod"); } }
定義
一部の手順をサブクラスに延期しながら、アルゴリズムで操作フレームワークを定義します。これにより、サブクラスは、アルゴリズムの構造を変更せずに、アルゴリズムの特定のステップを再定義できます。
役割
このデザインパターンの役割分担は比較的単純です
抽象テンプレートクラス
具象テンプレートクラス
抽象テンプレートクラスには、テンプレートメソッド、具象メソッド、抽象メソッド、フック方式。
テンプレートメソッド
は、特定のメソッド、実装される抽象メソッド、フックメソッドなどを呼び出すアルゴリズムの実装手順を決定します。アルゴリズム実行用のテンプレートです。
具象メソッド
具象メソッドはアルゴリズムのより安定した部分であるため、メソッドの具体的な実装は抽象クラスで与えられます。
抽象メソッド
抽象メソッドは、定義にあるとおり、サブクラスの実装が遅延されるメソッドです。
フックメソッド
一般的なテンプレートメソッドはデフォルトの実装を提供します。このメソッドは状況に応じてサブクラスでオーバーライドしたり書き換えたりできます。
UML
実装プロセス
/** * Created by tiantian on 2018/7/28 */public abstract class AbstractTemplateMethod { public void templateMethod() { implementedMethod(); abstractMethod(); hookMethod(); // ... more than method invoke } public void anotherTemplateMethod() { // do other things } public abstract void abstractMethod(); public void hookMethod() {} public void implementedMethod() { System.out.println("I have been implemented in TemplateMethod class."); } // ... more than method abstract or implemented.}
/** * Created by tiantian on 2018/7/28 */public class ConcreteTempleteMethod extends AbstractTemplateMethod { @Override public void abstractMethod() { System.out.println("Do something"); } @Override public void hookMethod() { System.out.println("Do something in hookMethod"); } }
関連記事:
JAVAデザインパターンファクトリパターン(シンプルファクトリパターン+ファクトリメソッドパターン)
関連ビデオ:
以上がJava23デザインパターンの詳細事例解説:テンプレートメソッドパターン(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JVMは、JavanativeInterface(JNI)およびJava Standard Libraryを介してオペレーティングシステムのAPIの違いを処理します。1。JNIでは、Javaコードがローカルコードを呼び出し、オペレーティングシステムAPIと直接対話できます。 2. Java Standard Libraryは統一されたAPIを提供します。これは、異なるオペレーティングシステムAPIに内部的にマッピングされ、コードがプラットフォーム間で実行されるようにします。

modularitydoesnotdirectlyectlyectjava'splatformindepensence.java'splatformendepenceismaindainededainededainededaindainedaindained bythejvm、butmodularityinfluencesApplucationStructure andmanagement、間接的なインパクチャプラット形成依存性.1)

bytecodeinjavaisthe intermediaterepresentationthateNablesplatformindepence.1)javacodeis compiledintobytecodestoredin.classfiles.2)thejvminterpretsorcompilesthisbytecodeintomachinecodeatime、

javaachievesplatformedenceTheTheTheJavavirtualMachine(JVM)、これは、javacodeisisisisisissompiledIntobytecode.2)javaCodeisisisisissompiledevedevicetecode.2)

Javagui開発におけるプラットフォームの独立性は課題に直面していますが、Swing、Javafx、統一外観、パフォーマンス最適化、サードパーティライブラリ、クロスプラットフォームテストを使用することで対処できます。 Javaguiの開発は、クロスプラットフォームの一貫性を提供することを目的としたAWTとSwingに依存していますが、実際の効果はオペレーティングシステムごとに異なります。ソリューションには以下が含まれます。1)SwingおよびJavafxをGUIツールキットとして使用します。 2)uimanager.setlookandfeel()を介して外観を統合します。 3)さまざまなプラットフォームに合わせてパフォーマンスを最適化します。 4)ApachepivotやSWTなどのサードパーティライブラリを使用する。 5)一貫性を確保するために、クロスプラットフォームテストを実施します。

javadevelopmentisnotentirelylylypratform-IndopentDuetoseveralfactors.1)jvmvariationsaffectperformanceandbehavioracrossdifferentos.2)nativeLibrariesviajniintroducePlatform-specificissues.3)giaiasystemsdifferbeTioneplateplatifflics.4)

Javaコードは、さまざまなプラットフォームで実行するときにパフォーマンスの違いがあります。 1)JVMの実装と最適化戦略は、OracleJDKやOpenJDKなどとは異なります。 2)メモリ管理やスレッドスケジューリングなどのオペレーティングシステムの特性もパフォーマンスに影響します。 3)適切なJVMを選択し、JVMパラメーターとコード最適化を調整することにより、パフォーマンスを改善できます。

java'splatformindepentedencehaslimitationsincludingporformanceoverhead、versioncompatibulisisues、changleSwithnativeLibraryIntegration、プラットフォーム固有の機能、およびjvminStallation/maintenation。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









