私はJavaデザインパターンを使い、いくつかの疑問/質問プロトタイプデザインパターンを得ました。 最初に私が理解していることを言いましょう。プロトタイプデザインパターンはオブジェクトの作成に使用されます はメモリまたはリソースの面でコストがかかります。だから、その場合はすでに利用可能なオブジェクトのクローンを使用します。 新しいオブジェクトとclone()の作成の違いは何ですか?オブジェクトストアはどこに保存されますか?Javaプロトタイプデザインパターンオブジェクト作成
答えて
プロトタイプデザインパターンは、時間の節約と省スペースの2種類のコスト削減を実現します。
時間を節約するには、オブジェクトを作成するときに、ファイル、データベース、またはネットワークを介して構成データを要求するなど、補助情報への高価なアクセスが必要になります。たとえば、Webサーバーに格納されているテンプレートから多数のページを作成する場合は、テンプレートを一度読み取ってクローンして新しいページの開始点を取得するほうが安価です。各ページ。
オリジナルの文字列にたくさんの文字列が含まれている場合、新しいインスタンスを作成するには、完全に新しい不変の文字列を作成するか、手動で文字列を扱う必要があります。プロトタイプパターンを使用すると、クローンがテンプレートの不変部分を共有するようにすることで、この問題を回避することができます。
Javaのclone()
メソッドは、単に新しいオブジェクトを作成し、メンバ変数の値をコピーします。一般に、新しいオブジェクトを作成するよりも、それほど高価でもコストもかかりません。 clone()
がnew
でオブジェクトを作成するよりも安価なのは、オブジェクトのコンストラクタが何か高価な場合です。たとえば、コンストラクタが引数をとり、データベースクエリの一部として使用した場合などです。その場合、clone()
を使用すると、高価なクエリ操作が行われないため、安価になります。
このデザインパターンを使用する理由は他にもあります。ほとんどの場合、オブジェクトは使用前に複雑な設定を必要とし、コンストラクタでは便利に実行できません。オブジェクトには設定が必要な20のプロパティがあるとします。コンストラクタパラメータでそれらを設定すると、そのコンストラクタはひどく醜いでしょう - 20個のパラメータを持つコンストラクタを想像してみてください!代わりに、おそらくパラメータを持たないオブジェクトを作成し、ミューテータメソッドを使用して20個の値を設定し、必要に応じて既製のコピーを作成するオブジェクトclone()
を作成することができます。 clone()
はパラメータを一切必要としないので、明らかに醜いです。このオブジェクトの複数の異なるバージョンの複数のコピーが必要な場合は、プロトタイプパターンが魅力的になります。
- 1. Javaの作成
- 2. Javaドキュメントデザインエディタの作成
- 3. Javaカークラスの作成
- 4. Java GUI作成フレームワーク
- 5. Javaプロセスの作成
- 6. Java Swingバーコード作成
- 7. Javaアプリケーションスレッドの作成
- 8. JavaデータベースをJavaから作成
- 9. Javaでのグリッドの作成
- 10. Javaスイングフォームのホットキーの作成
- 11. Java/Android - ビットマップ作成 - OOMエラー
- 12. Javaでasynctaskクラスを作成
- 13. dateRangeの作成Scala、Joda、Java
- 14. Java-ロビーゲームサーバーの作成方法
- 15. Java - カスタムダイアログボックスの作成方法
- 16. Javaでタイマーを作成
- 17. 文章作成ツールjava
- 18. 動的クラスの作成 - Java
- 19. Java - プロセスエラーの作成= 193
- 20. Javaコードの自動作成
- 21. 新しいJavaを作成
- 22. sbtでJavaプロジェクトを作成
- 23. ElasticSearch Java API:クライアントの作成
- 24. JavaでJSONデータオブジェクトを作成
- 25. Java PsiAssignmentExpressionを作成する
- 26. Javaでの変数作成
- 27. Javaで表を作成
- 28. Java - SSLサーバーの作成
- 29. java 7+ファイルの作成
- 30. Netbeans、java、jarを作成
これはあなたに役立つかもしれません。http://stackoverflow.com/questions/663079/does-cloning-provide-a-performance-improvement-over-constructors-factory-methods –