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