Pythonデザインパターン-ファクトリ

ファクトリパターンは、作成パターンリストカテゴリに分類されます。これは、オブジェクトを作成するための最良の方法の1つを提供します。ファクトリパターンでは、オブジェクトは、ロジックをクライアントに公開せずに、共通のインターフェイスを使用して新しく作成されたオブジェクトを参照せずに作成されます。

ファクトリパターンは、ファクトリメソッドを使用してPythonで実装されます。ユーザーが文字列を渡すようなメソッドを呼び出し、新しいオブジェクトとしての戻り値がファクトリメソッドを介して実装される場合。ファクトリメソッドで使用されるオブジェクトのタイプは、メソッドを介して渡される文字列によって決定されます。

以下の例では、すべてのメソッドにパラメーターとしてオブジェクトが含まれています。これは、ファクトリメソッドを介して実装されます。

ファクトリパターンを実装する方法は?

ファクトリパターンを実装する方法を見てみましょう。

class Button(object):
   html = ""
   def get_html(self):
      return self.html

class Image(Button):
   html = "<img></img>"

class Input(Button):
   html = "<input></input>"

class Flash(Button):
   html = "<obj></obj>"

class ButtonFactory():
   def create_button(self, typ):
      targetclass = typ.capitalize()
      return globals()[targetclass]()

button_obj = ButtonFactory()
button = ['image', 'input', 'flash']
for b in button:
   print button_obj.create_button(b).get_html()

ボタンクラスは、htmlタグと関連するhtmlページを作成するのに役立ちます。クライアントはコードのロジックにアクセスできず、出力はhtmlページの作成を表します。

出力

説明

Pythonコードには、値を指定するhtmlタグのロジックが含まれています。エンドユーザーは、Pythonコードによって作成されたHTMLファイルを確認できます。