例:
class ShapeFactory:
def create_shape(self, shape_type):
if shape_type == "circle":
return Circle()
elif shape_type == "rectangle":
return Rectangle()
# 他の具体的なシェイプの作成ロジック
factory = ShapeFactory()
shape = factory.create_shape("circle")
shape.draw()
シングルトンパターン (Singleton Pattern): シングルトンパターンは、クラスのインスタンスが必ず1つしか存在しないことを保証するためのパターンです。これにより、アプリケーション全体で共有される唯一のインスタンスを提供します。
例:
class Logger:
__instance = None
@staticmethod
def get_instance():
if Logger.__instance is None:
Logger.__instance = Logger()
return Logger.__instance
logger = Logger.get_instance()
logger.log("This is a log message")
プロトタイプパターン (Prototype Pattern): プロトタイプパターンは、既存のオブジェクトを複製して新しいオブジェクトを作成するためのパターンです。これにより、オブジェクトの生成コストや初期化の負荷を軽減することができます。
例:
import copy
class Prototype:
def clone(self):
return copy.deepcopy(self)
original_object = Prototype()
cloned_object = original_object.clone()
以上が、いくつかのクリエーションパターンとそれらの使い方の例です。これらのパターンを理解し、適切な場面で使用することで、効率的で再利用可能なコードを作成することができます。