PHPで新しいクラスを作成しています。このクラスが拡張されることはないと思います。クラスメンバーをプライベートにし、getterおよびsetter関数を実装する必要がありますか?
私の一部は、これは時間の大きな無駄であり、コードをまとめるのに役立つだけだと考えています。
クラスは履歴書用です。私は自分のコーディングスタイルを示すためにコードで書いています。問題は、雇用主がゲッターとセッターを見たいのか、それとも単に物事を混乱させるのかということです。
PHPで新しいクラスを作成しています。このクラスが拡張されることはないと思います。クラスメンバーをプライベートにし、getterおよびsetter関数を実装する必要がありますか?
私の一部は、これは時間の大きな無駄であり、コードをまとめるのに役立つだけだと考えています。
クラスは履歴書用です。私は自分のコーディングスタイルを示すためにコードで書いています。問題は、雇用主がゲッターとセッターを見たいのか、それとも単に物事を混乱させるのかということです。
現在継承を期待していなくても、将来は継承が必要になる可能性があるという議論をもう一度繰り返したくありませんが、ゲッターとセッターを使用する理由はまだまだあります。
__getおよび__setマジックメソッドを確認してください。コードがクリーンに保たれ、変数scopelを設定しないことに怠惰になる必要はありません。
public function __get($name)
{
return $this->$name;
}
public function __set($name, $value)
{
$this->$name = $value;
}
明らかにあなたはより多くの詳細を持っているでしょう、しかしそれはあなたのアクセサーを扱います。
将来、クラスを拡張する必要がないことをあなたは決して知らないかもしれません。クラスは何をしますか?それはどれほど複雑ですか?
カプセル化は優れたオブジェクト指向設計の一部です。しかし、優れたオブジェクト指向設計はプログラミングの目標ではありません。目標は、物事を機能させ、必要に応じて簡単に変更できるようにすることです。
私があなただったら気にしない。そうです、その装飾はクラスを乱雑にするだけです。
私が理解している限り、__ get&__setをオーバーライドすることができます。 http://php.net/manual/en/language.oop5.overloading.php
クラスのプロパティを保護またはプライベートにしてから、ゲッターとセッターを使用するのが好きです。次に、セッターのコードを使用して、プロパティ値が許容範囲内にあることを確認します。受け入れられた値が設定されているか、例外がスローされているかを常に確認できるため、デバッグが容易になるため、このアプローチが気に入っています。また、プロパティに保持されている値の周りにオブジェクトを渡すと、他に何も爆発しないという確信が得られます。
履歴書の場合、彼らはゲッター/セッターのような細かいことをするのと同じくらい(またはそれ以上)あなたのロジックを気にかけている可能性があります。
私の場合は、ゲッター/セッターなしで公開しますが、「アプリケーションの範囲と好みのコードスタイルに応じて、これらをプライベートにし、ゲッター/セッターを使用することを検討してください。チームの」
そのように:
履歴書コードが乱雑ではありません
彼らはあなたが怠惰ですべてを理由もなく公開しているだけではないことを理解しています
セットで何か特別なことをしたいですか、それとも取得したいですか(またはそのうちの1つだけをプライベートにしますか)?
そうでない場合は、これらに時間を無駄にしないでください。
「特別な方法」でそれらを使用しない場合、これを行うことで何も得られず、おそらくそれはすべてを遅くすることさえあります
これらのプロパティを設定またはアクセスするときに特定の動作を行う予定がない場合は、それほど重要ではありません。
後でこれらのプロパティにアクセスまたは変更するときに特定の動作が必要な場合は、いつでも__setメソッドと__getメソッドをオーバーロードできます。