単一責任
Coddyの「Clean Code - Pythonでより良いコードを書く」コースのレッスン 22/28。
「クラスを変更する理由は、常に1つだけでなければならない。」
単一責任の原則(SRP)は、すべてのクラスと関数は、たった1つの役割、または変更するためのたった1つの理由を持つべきであると述べています。
目標 -
- 凝集度が高く、堅牢なクラスと関数を作成する。
- クラスの合成を促進する。
- コードの重複を避ける。
チャレンジ
中級Personクラスが与えられており、その中には人をデータベースに保存するためのsaveメソッドがあります。
与えられたコードでは、このクラスには2つの責務があります:
- Personオブジェクトの作成と管理
- 人をデータベースに保存する
あなたのタスクは、Personが1つの責務のみを持つようにすることです。
saveメソッドを持つDatabaseクラスを作成してください。PersonとDatabaseの間の接続を作成してください。
このタスクを実行するためのオプションはたくさんありますが、特定の1つを目指しています。必要に応じてヒントを使用してください!
Database用に別のクラスを作成すると、すべての"Database related"な事柄を1か所で管理できることに注意してください!
自分で試してみよう
class Person:
def __init__(self, name):
self.name = name
def save(self):
print('Saving person with name "%s"' % self.name)