7月 21, 2018

値オブジェクトの利点をわかってくれない

お仕事中の話、すべてのプリミティブ型を値オブジェクトにしたのだけど、やりすぎだと言われた。
キー項目だけでいいではないかというのが主張なのだが、キー項目に関わらず、安全なプログラムを作るのに必要だと言うも、結局は面倒くさいと言うことで抵抗される。
例えば、単価と数量の計算をするときに、値オブジェクトだと直接計算できないではないかと。
どうもこう考えているみたい。
UnitPrice unitPrice;
Quantity quantity;
SubTotal subTotal;
subTotal.value = unitPrice.value * quantity.value;
いや、こうじゃないんだよ。こうなるんだよ。
subTotal = SubTotal.calculation(unitPrice, quantity);
こうすると、単価と数量を取り違えることもないし、なんのために計算しているか、プログラムでわかるでしょう。
と説明するも、結局SubTotalクラスに計算式が移動しただけでわかりにくいと・・・
合計金額を入れるクラスにその計算方法のメソッドがあった方がわかりやすいと思うのだがなぁ。
どうしても、手続き型の書き方に依存している様だ。
どうすれば、わかってくれるのだろう。ここはまだまだ、オブジェクト指向設計・開発の入り口でしかないのに・・・