私は最近、古い個人的なプロジェクトをリファクタリングする時間があり、この種のクラスに最適に対処する方法についての学習経験として使用したいと考えていました。
問題は、私のクラス (アイテム) に 2 つの性別が関連付けられていることです (将来的には、アイテムのポスターや帽子/アクセサリーのようなものになる可能性があります)。これらの性別のそれぞれは、ほぼ同じメソッドを使用して取得および設定します。それらに関すること (get_productImage、set_price など)。
クラスをリファクタリングして、各関数に対応する男性と女性を使用する代わりに、コードを 1 回記述して、それを 2 回 (またはそれ以上) 使用できるようにしたいと考えました。これが(非常に単純化された例です)私がこれまでに持っているものです:
class Item
{
public $ID, $displayDate;
public $male, $female;
public function __construct($ID)
{
//Fancy code to initialize stuff like $displayDate
$male = new Gender('male', $ID, $displayDate);
$female = new Gender('female', $ID, $displayDate);
}
}
class Gender
{
private $ID, $displayDate;
public function get_currentPrice()
{
//The current price of the gender changes based on the display date vs the current date and then adjusts the price accordingly and returns it.
}
}
これをもっとうまく書き直す方法はありますか?私が抱えているもう1つの問題は、displayDateが変更される可能性がある(そして変更される)ことです.
それが役立つ場合、私はphp 5.4を使用しているので、それに追加された新しいものはすべてここでも使用できます。