我有一个产品类别。 现在,我想在我的网站上添加某种贴现模块,与产品类别互动。
目前唯一的解决办法 我可以认为,正在使用某种装饰模式,围绕产品类别进行包装,从而改变产品价格。
与此类似:
class Product {
function price() {
return 10;
}
}
class ProductDiscountDecorator {
private $product;
function __construct($product) {
$this->product = $product;
}
function price() {
return $this->product->price()*0.8;
}
}
$product = new ProductDiscountDecorator(new Product());
echo $product->price();
这是折扣,价格应在网站每页上加以调整。 因此,使用产品类别的每一页也应增加装饰。 我认为解决这一问题的唯一办法,是利用一个自动增加这一腐蚀者的工厂。
$product = $factory->get( product ); // returns new ProductDiscountDecorator(new Product());
也许会奏效,但我感到,我对这里的诽谤模式怀念。
你们对此是否有任何想法? 你们如何执行类似的东西?