ファクトリパターンと抽象ファクトリパターンの違いは何ですか

目次:

Anonim

NS 主な違い ファクトリパターンと抽象ファクトリパターンの間には、 ファクトリパターンは、オブジェクトの作成に使用される正確なクラスを指定せずにオブジェクトを作成する方法を提供し、抽象ファクトリパターンは、具体的なクラスを指定せずに個々のファクトリのグループを組み合わせる方法を提供します。

デザインパターンは、ソフトウェア開発者がソフトウェアを開発するときに直面する一般的な問題の解決策です。それらは一般的であり、システムタイプやプログラミング言語に依存しません。さらに、それらは実証済みのソリューションであり、ベストプラクティスを提供します。デザインパターンには、作成、構造、動作の3種類があります。作成パターンは、作成ロジックを非表示にしながらオブジェクトを作成する方法を提供します。さらに、プログラムをより柔軟にします。ファクトリパターンと抽象ファクトリパターンは、そのような2つの創造的なデザインパターンです。

抽象ファクトリパターン、ファクトリパターン

ファクトリパターンとは

ファクトリパターンは、オブジェクトを作成するための優れた方法を提供します。このメソッドを使用すると、プログラマーは作成ロジックを公開せずにオブジェクトを作成できます。共通のインターフェースを使用して、新しく作成されたオブジェクトを参照することもできます。以下のプログラムを参照してください。

図1:形状インターフェース

図2:長方形クラス

図3:スクエアクラス

図4:サークルクラス

図5:ShapeFactoryクラス

図6:メインクラス

Shapeインターフェースには、drawと呼ばれる抽象的なメソッドがあります。 Rectangle、Square、Circleはクラスです。それらはShapeインターフェースを実装します。したがって、これらのクラスは、メソッドdrawの実装を提供します。各クラスのdrawメソッドには独自の実装があります。 ShapeFacotryクラスには、getShapeというメソッドがあります。文字列を取得します。このメソッドは、受信した文字列に従ってオブジェクトを返します。

mainメソッドには、shapeというオブジェクトがあります。タイプはShapeFactoryです。 getShapeメソッドは、そのオブジェクトを使用して呼び出されます。文字列「Rectangle」が渡されます。返されるオブジェクトは、TypeShapeのshape1に格納されます。同様に、文字列「SQUARE」と「CIRCLE」がgetShapeに渡されます。戻りオブジェクトはshape2とshape3に格納されます。各オブジェクトはdrawメソッドを呼び出し、対応するdrawメソッドは渡された文字列に従って実行されます。

メインプログラムは、ShapeFactoryクラスを使用してShapeオブジェクトを取得します。必要な文字列をShapeFactoryに渡して、必要なオブジェクトのタイプを取得します。

抽象ファクトリパターンとは

Abstract Factory Patternは、スーパーファクトリを使用して、他のファクトリを作成します。としても知られています 工場の工場。このパターンでは、インターフェイスは、クラスを明示的に指定せずに、関連するオブジェクトのファクトリを作成します。つまり、スーパーファクトリを作成した後、他のファクトリを作成できます。以下のプログラムを参照してください。

図7:カラーインターフェイス

図8:黄色のクラス

図9:オレンジクラス

図10:紫のクラス

図11:AbstractFactoryクラス

図12:ShapeFactoryクラス

図13:ColorFactoryクラス

図14:FactoryProducerクラス

図15:メインプログラム

インターフェイスシェイプとクラスRectangle、Square、Circleは、前のセクションと同じです。色はインターフェースです。これには、fillと呼ばれる抽象的なメソッドがあります。イエロー、オレンジ、パープルのクラスはそのインターフェースを実装しています。したがって、これらのクラスは、fillメソッドの実装を提供します。 AbstrcatFactoryクラスには、getShapeとgetColorの2つのメソッドがあります。 ShapeFactoryクラスはAbstractFacotryを拡張します。同様に、ColorFactoryクラスはAbstractFactoryを拡張します。これらのクラスには、getShapeメソッドとgetColorメソッドの実装があります。

FactoryProducerクラスには、AbstractFactory型オブジェクトを返すgetFactoryというメソッドがあります。取得する文字列に応じて、ShapeFactoryオブジェクトまたはColorFactoryオブジェクトまたはnullを返します。最後に、mainメソッドはFactoryProducerを使用してAbstractFactoryを取得し、具象クラスのファクトリを取得します。

ファクトリパターンと抽象ファクトリパターンの違い

意味

ファクトリパターンは、作成されるオブジェクトの正確なクラスを指定することなく、オブジェクト作成の問題に対処するためのメソッドを使用する作成パターンです。一方、抽象ファクトリパターンは、具体的なクラスを指定せずに、共通のテーマを持つ個々のファクトリのグループをカプセル化する方法を提供する作成パターンです。したがって、これらの定義は、ファクトリパターンと抽象ファクトリパターンの主な違いを説明しています。

建設を隠す

ファクトリパターンと抽象ファクトリパターンのもう1つの違いは、ファクトリパターンが単一のオブジェクトの構築を非表示にするのに対し、抽象ファクトリパターンは関連するオブジェクトのファミリの構築を非表示にすることです。

結論

ファクトリパターンとアブストラクトファクトリパターンは、2つの創造的なデザインパターンです。ファクトリパターンは、オブジェクトの作成に使用される正確なクラスを指定せずにオブジェクトを作成するメソッドを提供します。対照的に、抽象ファクトリパターンは、具体的なクラスを指定せずに、個々のファクトリのグループを組み合わせる方法を提供します。したがって、これがファクトリパターンと抽象ファクトリパターンの主な違いです。

リファレンス:

1.「ファクトリメソッドデザインパターン」。 Javatpoint、ここから入手可能2。 「抽象的なファクトリパターン。」 Javatpoint、ここから入手できます。

ファクトリパターンと抽象ファクトリパターンの違いは何ですか