Design-pattern-abstract-factory-pattern
デザインパターン-抽象ファクトリーパターン
Abstract Factoryパターンは、他の工場を作成するスーパー工場を回避します。 この工場は工場の工場とも呼ばれます。 このタイプのデザインパターンは、オブジェクトを作成する最適な方法の1つであるため、作成パターンの下にあります。
Abstract Factoryパターンでは、インターフェイスは、クラスを明示的に指定せずに関連オブジェクトのファクトリを作成する役割を果たします。 生成された各ファクトリは、ファクトリパターンに従ってオブジェクトを提供できます。
実装
Shapeインターフェースとそれを実装する具体的なクラスを作成します。 次のステップとして、抽象ファクトリクラスAbstractFactoryを作成します。 ファクトリクラスShapeFactoryが定義され、AbstractFactoryを拡張します。 ファクトリクリエーター/ジェネレータークラスFactoryProducerが作成されます。
AbstractFactoryPatternDemo、デモクラスはFactoryProducerを使用してAbstractFactoryオブジェクトを取得します。 情報(形状のCIRCLE/RECTANGLE/SQUARE)をAbstractFactoryに渡し、必要なオブジェクトのタイプを取得します。
ステップ1
Shapesのインターフェイスを作成します。
Shape.java
ステップ2
同じインターフェースを実装する具体的なクラスを作成します。
RoundedRectangle.java
RoundedSquare.java
Rectangle.java
ステップ3
Abstractクラスを作成して、NormalおよびRounded Shapeオブジェクトのファクトリを取得します。
AbstractFactory.java
ステップ4
指定された情報に基づいて具象クラスのオブジェクトを生成するために、AbstractFactoryを拡張するファクトリクラスを作成します。
ShapeFactory.java
RoundedShapeFactory.java
ステップ5
ファクトリージェネレーター/プロデューサークラスを作成して、Shapeなどの情報を渡すことで工場を取得します。
FactoryProducer.java
ステップ6
FactoryProducerを使用してAbstractFactoryを取得し、typeなどの情報を渡すことで具体的なクラスのファクトリーを取得します。
AbstractFactoryPatternDemo.java
ステップ7
出力を確認します。