デザインパターン-作成-ファクトリメソッドパターン

ファクトリメソッドパターン

概要概要

  • オブジェクトを作成するためのインターフェースを定義し、サブクラスにインスタンス化する製品クラスを決定させます

キャラクター

  • 抽象ファクトリの役割(作成者)
  • コンクリート工場の役割(コンクリートクリエーター)
  • 抽象製品の役割(製品)
  • 具体的な製品の役割

from abc import ABCMeta,abstractmethod

class Animal(metaclass=ABCMeta):
    
    @abstractmethod
    def walk(self):
        pass

class Rabbit(Animal):
    def walk(self):
        print("兔子行走")

class Duck(Animal):
    def walk(self):
        print("鸭子行走")

class AnimalFactory(metaclass=ABCMeta):
    @abstractmethod
    def create_animal(self):
        pass

class RabbitFactory(AnimalFactory):
    def create_animal(self):
        return Rabbit()

class DuckFactory(AnimalFactory):
    def create_animal(self):
        return Duck()

利点

  • 特定の各製品は特定のファクトリクラスに対応しており、ファクトリクラスコードを変更する必要はありません。
  • 隠しオブジェクト作成の実装の詳細

不利益

  • 特定の製品カテゴリを追加するたびに、対応する特定の工場カテゴリを追加する必要があります

おすすめ

転載: blog.csdn.net/DALAOS/article/details/113179100