ホームページ > Java > &#&面接の質問 > 2020 年の新しい Java 面接の質問 - 設計パターン

2020 年の新しい Java 面接の質問 - 設計パターン

王林
リリース: 2020-06-22 17:19:30
転載
2285 人が閲覧しました

2020 年の新しい Java 面接の質問 - 設計パターン

単純なファクトリと抽象的なファクトリの違いは何ですか?

(関連する推奨事項: Java 面接の質問 )

単純なファクトリー パターン:

このパターン自体は非常に複雑です。 simple そして、ビジネスが比較的単純な場合に使用されます。一般に、小規模なプロジェクトや、特定の製品がほとんど拡張されない状況 (ファクトリ クラスを頻繁に変更する必要がないように) に使用されます。

これは 3 つのロールで構成されます:

  • ファクトリ ロール: これはこのモデルの中核であり、特定のビジネス ロジックと判断ロジックが含まれています。異なるロジックに応じて、特定の工場製品が生成されます。例の Driver クラスなど。

  • 製品の抽象的な役割: これは通常、特定の製品または実装されたインターフェイスによって継承される親クラスです。インターフェースまたは抽象クラスによって実装されます。例の Car インターフェイスなど。

  • 特定の製品ロール: ファクトリ クラスによって作成されたオブジェクトは、このロールのインスタンスです。これは、例の Benz クラスや BMW クラスなど、Java の具象クラスによって実装されます。

#(推奨学習:

Java 入門プログラム )

クラス図を使用してクラス間の関係を明確に表現します :

2020 年の新しい Java 面接の質問 - 設計パターン

#抽象的なファクトリ パターン:

まず、製品ファミリーとは何かを理解しましょう: 製品ファミリーはさまざまな製品階層構造に配置され、関連する機能を持っています。接続された製品ファミリー。

2020 年の新しい Java 面接の質問 - 設計パターン写真の BmwCar と BenzCar は 2 つの製品ツリー (製品階層) であり、写真の BenzSportsCar と BmwSportsCar は 1 つの製品ファミリーです。これらはすべてスポーツカーファミリーに分類できるため、機能は関連しています。同様に、BmwBusinessCar と BenzBusinessCar も製品ファミリーです。

ファクトリ メソッド パターンとの違いは、オブジェクト作成の複雑さにあると言えます。さらに、抽象ファクトリー パターンは、3 つの中で最も抽象的かつ一般的です。抽象ファクトリ パターンの目的は、クライアントが複数の製品ファミリーの製品オブジェクトを作成するためのインターフェイスを提供することです。

さらに、抽象ファクトリ パターンを使用するには、次の条件を満たす必要があります:

1. システム内に複数の製品ファミリがあり、システムは消費することしかできません。一度に 1 つの製品ファミリーを使用してください

2. 同じ製品ファミリーに属する製品は、それに応じて使用する必要があります。

(ビデオ チュートリアルの推奨:

java ビデオ チュートリアル

)

抽象ファクトリ パターンのさまざまな役割を見てみましょう (ファクトリ メソッドと同じ) ):

    抽象ファクトリ ロール: これはファクトリ メソッド パターンの中核であり、アプリケーションとは何の関係もありません。これは、特定のファクトリ ロールが実装する必要があるインターフェイス、または継承する必要がある親クラスです。 Java では、抽象クラスまたはインターフェイスによって実装されます。
  • 特定のファクトリ ロール: 特定のビジネス ロジックに関連するコードが含まれています。特定の製品に対応するオブジェクトを作成するためにアプリケーションによって呼び出されます。 Java では、具象クラスによって実装されます。
  • 製品の抽象的な役割: 特定の製品または実装されたインターフェイスによって継承される親クラスです。 Java では、通常、実装する抽象クラスまたはインターフェイスが存在します。
  • 特定の製品ロール: 特定のファクトリ ロールによって作成されたオブジェクトは、このロールのインスタンスです。 Java の特定のクラスによって実装されます。

以上が2020 年の新しい Java 面接の質問 - 設計パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート