连接两种不同对象方法的最佳方法是什么?

时间:2011-02-07 17:11:24

标签: php oop

有两个对象:

$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,这不好(我希望它们在课堂内)。
或许还有其他方式。

1 个答案:

答案 0 :(得分:0)

我可能会为Statistics创建一个单独的类,并使用它:

$stats = new Statistics($user_id);
$stats->add_product($product_id);