Menu
Coddy logo textTech

単一責任

Coddyの「Clean Code - Pythonでより良いコードを書く」コースのレッスン 22/28。

「class が変更される理由は、決して複数あってはならない。」

単一責任の原則(SRP)は、すべての class と関数が、1つの役割または変更する理由を1つだけ持つべきだと定めています。

目標 -

  • 凝集性が高く堅牢な class と関数を作成する。
  • class のコンポジションを促進する
  • コードの重複を避ける
challenge icon

チャレンジ

中級

Person クラスには、人物をデータベースに保存するための save メソッドがあります。

与えられたコードでは、このクラスには2つの責務があります。

  1. 人物オブジェクトを作成および管理する
  2. 人物をデータベースに保存する

あなたの課題は、Person1つの責務だけを持つようにすることです。

  • save メソッドを持つ Database クラスを作成する。
  • PersonDatabase の間に接続を作成する

この課題を行う方法はたくさんありますが、ここでは特定の方法を目指します。必要に応じてヒントを使ってください。

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オンラインコンパイラ