2011-02-07 53 views
1

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

$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

我可能会创建一个统计一个单独的类,并使用它像这样:

$stats = new Statistics($user_id); 
$stats->add_product($product_id); 
相关问题