| 登録日 |
:2025/09/16 04:46 |
| カテゴリ |
:Python基礎 |
S:Single Responsibility(単一責任の原則)
単一責任の原則
- クラスは、たったひとつのアクターに対して責任を負うべきである(アクター:そのクラスを使用するユーザやステークホルダー
原則に違反した場合
- あるアクターのために行った変更の影響が別のアクターにも及び、バグが生まれる可能性がある
- どのアクターに影響があるのか、変更前に調査する工数がかかる
- 変更後に全てのアクターに対してバグが発生していないかのテストを行う工数がかかる
- コードの共通部分を同時に変更してしまいコンフリクトする可能性がある
Sampleプログラム
class EmployeeData(object):
def __init__(self, name: str, department: str):
self.name = name
self.department = department
class PayCalculator(object):
@staticmethod
def __get_regular_hours():
print("給与計算専用の労働時間計算ロジック")
def calculate_pay(self, _employee_data: EmployeeData):
self.__get_regular_hours()
print(f"{_employee_data.name}の給与を計算しました")
class HourReporter(object):
@staticmethod
def __get_regular_hours():
print("労働時間レポート専用の労働時間計算ロジック")
def calculate_pay(self, _employee_data: EmployeeData):
self.__get_regular_hours()
print(f"{_employee_data.name}の労働時間をレポートしましたV2")
class EmployeeRepository(object):
def save(self):
pass
if __name__ == '__main__':
employee_data = EmployeeData("Suzuki", "develop")
pay_calculator = PayCalculator()
hour_reporter = HourReporter()
print("経理部門")
pay_calculator.calculate_pay(employee_data)
print("")
print("人事部門")
hour_reporter.calculate_pay(employee_data)