Pythonでは、enum
モジュールを使用して列挙型を作成することができます。また、enum
を使用してファクトリパターンを実装することも可能です。
以下に、Pythonでenum
とファクトリパターンを組み合わせたコードの一例を示します。
from enum import Enum
class EmployeeType(Enum):
ENGINEER = 1
SALES = 2
class Employee:
def __init__(self, name):
self.name = name
class Engineer(Employee):
def work(self):
return 'エンジニアリング'
class Sales(Employee):
def work(self):
return '営業'
class EmployeeFactory:
@staticmethod
def create(employee_type, name):
if employee_type == EmployeeType.ENGINEER:
return Engineer(name)
elif employee_type == EmployeeType.SALES:
return Sales(name)
engineer = EmployeeFactory.create(EmployeeType.ENGINEER, 'Aさん')
print(engineer.work()) # エンジニアリング
sales = EmployeeFactory.create(EmployeeType.SALES, 'Bさん')
print(sales.work()) # 営業
このコードでは、EmployeeType
というenum
を定義し、それをEmployeeFactory
のcreate
メソッドの引数として使用しています。これにより、EmployeeType.ENGINEER
を指定すればEngineer
のインスタンスが、EmployeeType.SALES
を指定すればSales
のインスタンスが生成されます。
このように、Pythonのenum
とファクトリパターンを組み合わせることで、コードの可読性と保守性を向上させることができます。