2011-02-07 3 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); 
Смежные вопросы