2017-08-30 1 views
0

登録クラスと呼ばれるクラスがあるとしましょう。このクラスのみユーザーを登録し、検証が合格しない場合はメッセージを表示します。PHPのクラスメソッドとソリッドの原理

class Register { 

     function register_user() { 

      // Do Validation, Get message and Show it if faild 
      ... 
      $message = $this->get_message($error_code); 
      ... 


      // Register User Codes 
      ... 

     } 


     // Some other related methods 
     ... 


     function get_message($error_code) { 

      // Returns **different messages** based on error code. 

     } 

    } 

私の質問はこれです:取得する必要メッセージは登録クラスの一部であるか、またはそれは登録、ログイン、ForgotPasswordのメッセージを処理するための独自のクラスを持っている必要がありますか...?

どちらがフレンドリーでフレンドリーですか?

+0

しかし、ここに別の質問があります。あなたのクラスを登録、ログイン、パスワードを忘れたユーザサービスのようにするのはもっと理にかなっていませんか? – Mikey

+0

@Mikey 1つのクラスにこれらのメソッドをすべて持っているのは明らかにSOLIDではありません(単一の責任原則は失敗します)。 – metalzade

答えて

2

良いOOPの実装では、register、login、logout、display_user、modify_userなどの関数などの関数(メソッド)を持つユーザークラスを作成します。あなたのオブジェクトはユーザーです。 register_user関数のみを持つクラスと、login_user関数のみを持つ別のクラスを持つことは、何の理由もなくコードを複雑にし、基本的なOOPに逆行します。私はSOLIDについてはあまりよく分かりませんが、プライベート、プロテクト、ファイナルなどの修飾語を使用することで、個々の機能を安全かつ堅牢にすることができます。

+0

非常に多くのレベルで失敗するため、Stephaneは方法がたくさんある巨大クラスを持っています。タイトカップリング、テスト不能性およびメンテナンスの悪夢はほんの一例です。 これは小さなアプリケーションやモジュールではうまくいくかもしれませんが、他の開発者が関与している大きなプロジェクトで作業していて、アプリケーションが常に成長し変化している場合は失敗します。 SOLIDの原則は、一般的な落とし穴やコードの臭いを回避し、コードの維持と拡張が容易であることを保証します。 – metalzade

+0

はい、私は確かに巨大なクラスは良いソフトウェア設計の練習ではないことに同意しますが、手順的なプログラミングに戻るようなものであり、これはSOLIDの目標ではないので、クラスごとに1つのメソッドがありません。 –

0

堅実な原則は、アプリケーションのアーキテクチャを改善することです。したがって、これらの原則は、クラス、継承、クラス結合、依存関係の管理などに関連しています。私はあなたのアプリケーションですべての原則に従うことが少し難しくなりましたが、私はexpereenceの5年以上を持っています。あなたの心の中で、あなたができる限り多くを続けるべきです。 実際のexmaplesで5つの原則をすべて説明したブログがあります。チェックアウトする必要がありますhttp://tekina.info/solid-principles/

関連する問題