我最近有时间重构一个旧的个人项目,我想把它用作学习如何最好地处理这类课程的经验。
问题是我的班级(项目)有 2 个与之相关的性别(将来可能更像项目的海报,以及项目的帽子/配件),这些性别中的每一个都使用几乎相同的方法来获取和设置关于他们的事情(get_productImage、set_price 等)。
我想重构这个类,这样我就可以编写一次代码,而不是为每个函数使用一个男性和女性对应物,然后使用它两次(或更多)。这是我到目前为止所拥有的(一个非常简化的示例):
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.
}
}
有没有办法让我更好地重写这个?我遇到的另一个问题是 displayDate 可以(并且将会)改变和洗牌很多,所以对它的任何改变都需要传播到性别类,这将使这变得一团糟......
如果有帮助,我正在使用 php 5.4,所以添加到其中的任何新东西也可以在这里使用。