有两个对象:
$user = new user($user_id);
$product = new product($product_id);
用户添加了产品。我需要调用$product
对象来添加新产品,并$user
来更新他的统计信息。这两个动作完全相互连接。我怎么称呼他们?
我可以看到两种方式
# 1) two separate functions
$product->add_new($product_data);
$user->added_product();
# 2) calling static method in the end of the first
$product->add_new($product_data, $user->id);
function add_new($data, $user_id)
{
... // data processing
user::added_product($user_id); // static
}
功能开发的最佳功能 - 第一种方式(隐式调用两个连接的功能),或者第二种,具有静态功能?
我不喜欢静态方法,但如果由于某种原因未添加产品,则不应添加用户统计信息。所以在代码的顶层会有一些if / else,这不好(我希望它们在课堂内)。
或许还有其他方式。
答案 0 :(得分:0)
我可能会为Statistics创建一个单独的类,并使用它:
$stats = new Statistics($user_id);
$stats->add_product($product_id);