1

OOPに関しては、私は非常に素人で、pythonを使って独学しています。

私の主な関心事は、概念やエンティティをオブジェクトに分割することです。

たとえば、ラズベリーパイに接続された信号機システムを制御するコードを書きました。

システムには以下が含まれます。

  • 車が信号機 (赤、黄、緑) をオフにしました。
  • 横断をリクエストするボタン。
  • 緑と赤の信号で歩行者に横断のタイミングを知らせます

これで、コードを 1 つのクラス全体としてモデル化することになりました。オブジェクト内のメソッドがオブジェクト内の他のメソッドを呼び出す場所。たとえば、オブジェクトが初期化されると、initialize メソッドは「ボタンが押されるのを待つ」メソッドを呼び出し、ボタンが押されたことを検出すると、そのメソッドは「ライト シーケンスを通過する」メソッドを呼び出します。

これは悪い習慣ですか?各概念/エンティティは、信号機オブジェクト、ボタン オブジェクト、歩行者信号オブジェクトなど、個別のクラス/オブジェクトにする必要がありますか?

質問の開放性について申し訳ありません。

ご協力いただきありがとうございます。

4

1 に答える 1

1

あなたが現在持っているものは、単一責任の原則に違反しています。基本的にあなたのクラスはやりすぎです。

あなたができることは次のようなものです:

車の信号機、歩行者の信号機、および横断を開始するように要求するボタンについて、別々のクラスを用意します。

その後、ボタンクラスを歩行者用ライトクラスに注入できます。そして、車と歩行者クラスの両方を「制御」/「管理」クラスに注入します。このクラスでは、クラスを使用してライトを管理します。

たとえば、実際のライトをトラフィックライトクラスに注入することで、この後さらに抽象化することもできます。

他のSOLIDの原則についても読むことをお勧めします。

于 2013-01-16T12:54:52.603 に答える