デザインパターンの原則: 言い訳プログラミングのため
ファクトリパターンの役割:
A. アプリケーションの設計において、オブジェクトの作成は一か所に集中する、または特定のクラス (スプリング) によって統合管理されます
B. In オブジェクトはアプリケーションを変更せずに直接追加できるため、オブジェクトのメンテナンスも容易になります。工場パターンのタイプ:
– ’'s's s s s s s s s s- with with with withでは、経験豊富なドライバーが、さまざまな機会にさまざまな車を運転するように運転するように指示します。 oly simple Factory:s 'sの使用を使用して使用する' s - - - - - - - - - - - - - - - swayを介して使用することを介して; //車は運転することを意図しているので、エンジンを持っています
}
implements:
package com.product.implement;
import com.product.abstruct.Car; Public void drive(){//BMW も馬ではなく車です。エンジン
}
実装; m Com.product.abstruct.car を実装します。
Public void Drive () {// アウディも車なのでエンジンが必要です// Todo Auto-Gen Eraate メソッド stub
System.out.println("はい、今日はベンツに乗っています...") }
} = ==============
ファクトリー クラス:
ファクトリー クラスは管理クラスであり、車の直接の責任者であり、この人は上司のドライバーです。 com.product.abstruct をインポートします。 CAR; Public CAR DRIVECAR(String Carname)スロー{
benz();新しいアウディを返してください ();
}}} ある日、上司がリバプールのホームゲーム対ヴェラを観戦するためにイングランドに行きたいと言い、空港まで BMW で行く必要があるため、運転手に電話して車を開けさせました。 BMW 午後 2 時 BMW が彼を迎えに行く。 。 。 パッケージ com.product.test; パブリッククラス Test { public static void main(String[] args) throws Exception { // ドライバーに、今日アムステルダムまでどの車を運転するかを伝えます Car Car = Driver .drivecar ("Benz");//ワンクリックで開始 上司のビジネスがどんどん大きくなるにつれて、彼はますます裕福になったので、フェラーリ、ポルシェなどのスポーツカーをいくつか購入しました。車の数が増えたため、すべての車を経験豊富なドライバーが管理する必要があります。年に一度の点検、保険、チケット、洗車は経験豊富なドライバーだけでは多すぎます。このとき、老人運転手は、上司がどの日にどの車を運転する必要があるかを覚えておく必要があるため、上司に「それぞれの車に運転手を雇う」と提案します。各車には専任の担当者がいます。外出する必要がある場合は、私に挨拶してください。担当者を上司に迎えに行きます。上司は躊躇せずにこう言いました。 : package com.product.car.abstruct; public void drive (); System.out.println("公式");「公式のフォーサークルになります");
パッケージ com.product.car.manager; Car.abstruct.Car; .product.car.abstruct.car である必要はありません com.product.car.implement.Audidriver をインポートします。 com.product.CarManager.Carmanager をインポートします; Plements carmanager { public car drivecar () { AudiDriver();新しい Mercedes-Benz ドライバーを実行しました: ; または、com.product.car.implement.benzdriver をインポートします。 ; import com.product.manager.Carmanager C Car Drivecar () { Return new BenzDriver();パッケージ com.product.test; com.product.car.abstruct をインポートします。 Car; .car.implement.benzdriver; Import com.product.Car.Carmanager; ON { // 車の監督者を見つけて、今日リバプールとヴィラの試合を観戦するために BMW を運転したいと言いました
自宅の電話、BMW にガソリンを入れて、BMW が来ます;
Car driveCar = carManager.driveCar();
‐ to ‐ ‐ ‐ ‐ Car driveCar = carManager.driveCar(); これら 2 つのモードとその違いを比較します。それぞれの利点:
a. 単純なファクトリには抽象クラスはなく、作成する必要があるパラメータは 1 つだけ渡され、ファクトリ クラスがそれらを均一に作成します。製品オブジェクトを作成するためのインターフェイス。このインターフェイスは、サブクラスが実装する必要があるメソッドを定義し、オブジェクトを作成するためにオブジェクト自体に渡すだけで済みます。
利点と欠点:
a.この利点は、ファクトリーの役割を変更せずに (古いドライバーを解雇したり、再割り当てしたりすることなく) 新しいメンバーを簡単に追加できることです。シンプルなファクトリの利点は、パラメータに基づいて対応するオブジェクトを作成するだけであるということですが、すべてのオブジェクトがこのクラス内で作成され、作成されたオブジェクトは事前にしか知ることができないという点も明らかです (ある日突然、上司は手動の Jetta を購入しました。上司は、私が Jetta を購入して X に配置したことを古いドライバーに通知する必要がありました。システムが As の場合、メンバー オブジェクトを追加すると、コア クラスがメソッドを追加することになります。製品内の特定の製品カテゴリの数が増え続けると、ファクトリ クラスがさまざまな条件に応じてさまざまなインスタンスを作成する必要が生じる場合があります。この種の条件の判断と特定の製品タイプの判断が絡み合っているため、モジュールの機能の拡散を避けることが困難になり、システムの保守と拡張に非常に悪影響を及ぼします
次のステップはファクトリーのアプリケーションです。アプリケーション ファクトリの設計パターンはどうすればよいでしょうか? a. 特定の製品について、呼び出し元はどの特定のファクトリ サービスを使用するか、特定のファクトリをインスタンス化して特定の製品を生成するかを明確に知っています。これは、Java コレクションの iterator() メソッドの場合に当てはまります。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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