Я работаю над финансовыми показателями для игр в покер. Все суммы приведены в центах. Следовательно, тип является целым числом. Но мне нужно отобразить суммы несколькими способами. Пока я работаю так (PHP):
class Amount
{
private value;
public function set($v) ...
public function get() ...
public function add($v) ... // $v is integer
...
public function displayLikeThis() ...
public function displayLikeThat() ...
}
$value1 = new Amount(100);
$value2 = new Amount(200);
// ...
// Working with value1 and value2
// ...
// Then need to do value1 += value2 :
$value1->add( $value2->get() );
/*
Note :
I can also check parameter type in
the add method. Then, the previous line could be :
$value1->add( $value2 );
*/
echo $value1->displayLikeThis();
Это работает как шарм, но поскольку PHP не может перегружать операторы, мой код довольно «тяжелый», и мне интересно, правильно ли я это делаю. Наконец, это все еще "объектная парадигма", чтобы работать так:
$value1 = 100;
$value2 = 200;
$val = new Amount($value1 + $value2);
echo $val->display1();
При выполнении операций код становится меньше, но я чувствую себя неправильно, создавая новый объект Amount каждый раз, когда просто хочу отобразить значение (и в этом случае имя класса будет AmountDisplayer).
Мой вопрос: каков правильный способ POO для работы с целочисленными значениями?
Спасибо