Java の 3 つのファクトリー パターンとは何ですか?
Java の 3 つのファクトリ パターン: 1. 特定の実装を気にせずにオブジェクト インスタンスを作成する機能を提供する単純ファクトリ パターン、2. ファクトリ メソッド パターン、3. を作成する機能を提供する抽象ファクトリ パターンオブジェクト インスタンス: 具体的なクラスを指定せずに、関連するオブジェクトまたは相互依存するオブジェクトのファミリーのためのインターフェイス。
Java 入門チュートリアル)
1. 単純なファクトリ パターン
単純なファクトリの定義:特定の実装を気にせずにオブジェクト インスタンスを作成する関数を提供します。作成されたインスタンスのタイプは、インターフェイス、抽象クラス、または特定のクラスのいずれかになります。
車のインターフェイスの実装
public interface Car { String getName(); }
Benz クラス
public class Benz implements Car { @Override public String getName() { return "Benz"; } }
BMW タイプ
public class BMW implements Car { @Override public String getName() { return "BMW"; } }
BMW とメルセデスベンツの両方を生産できる簡易工場
public class SimpleFactory { public Car getCar(String name){ if (name.equals("BMW")){ return new BMW(); }else if (name.equals("benz")){ return new Benz(); }else { System.out.println("不好意思,这个品牌的汽车生产不了"); return null; } } }
テストクラス
public class SimpleFactoryTest { public static void main(String[] args){ SimpleFactory simpleFactory = new SimpleFactory(); Car car = simpleFactory.getCar("BMW"); System.out.println(car.getName()); } }
テスト結果
BMW
2. ファクトリ メソッド パターン
ファクトリ インターフェイス
//定义一个工厂接口,功能就是生产汽车 public interface Factory { Car getCar(); }
Benz Factory
public class BenzFactory implements Factory { @Override public Car getCar() { return new Benz(); } }
BMW ファクトリー
public class BMWFactory implements Factory{ @Override public Car getCar() { return new BMW(); } }
テストカテゴリー
public class FactoryTest { public static void main(String[] args){ Factory bmwFactory = new BMWFactory(); System.out.println(bmwFactory.getCar().getName()); Factory benzFactory = new BenzFactory(); System.out.println(benzFactory.getCar().getName()); } }
テスト結果
BMW Benz
3. 抽象ファクトリ パターン
抽象ファクトリ
public abstract class AbstractFactory { protected abstract Car getCar(); //这段代码就是动态配置的功能 //固定模式的委派 public Car getCar(String name){ if("BMW".equalsIgnoreCase(name)){ return new BmwFactory().getCar(); }else if("Benz".equalsIgnoreCase(name)){ return new BenzFactory().getCar(); }else if("Audi".equalsIgnoreCase(name)){ return new AudiFactory().getCar(); }else{ System.out.println("这个产品产不出来"); return null; } } }
デフォルト ファクトリ
public class DefaultFactory extends AbstractFactory { private AudiFactory defaultFactory = new AudiFactory(); public Car getCar() { return defaultFactory.getCar(); } }
BMW 工場
public class BMWFactory extends AbstractFactory { @Override public Car getCar() { return new BMW(); } }
ベンツ工場
public class BenzFactory extends AbstractFactory { @Override public Car getCar() { return new Benz(); } }
テスト クラス
public class AbstractFactoryTest { public static void main(String[] args) { DefaultFactory factory = new DefaultFactory(); System.out.println(factory.getCar("Benz").getName()); } }
テスト結果
Benz
注: デザイン パターンを嘲笑する人もいれば、デザイン パターンを神として尊敬する人もいますが、私はその意見に同意します。
私の大まかな理解によれば、デザイン パターンの典型的な点は、コードを書く人とコードを呼び出す人の両方の苦痛を解決するということです。さまざまなシナリオにのみ適用されます。利用するか否か、どのように利用するかについては、慎重に検討する必要があります。
しかし、ただ使うためだけに使うのではなく、その繊細さは皆さんにゆっくり味わっていただくしかありません。
プログラミング関連の知識について詳しくは、プログラミング コースをご覧ください。 !
以上がJava の 3 つのファクトリー パターンとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。
