如何使重要的一元减号在代码中脱颖而出?

时间:2016-04-08 09:52:31

标签: java operators readability

我有一个实体代表一些数量的预订。此外,还存在此属性为负数的实体,表明预订缺乏可用性。然后,逻辑将减少具有正数量属性值的预留数量。因此我有这样的说法:

long quantityToDecrease = -reservation.getQuantity();

如何使一元减号脱颖而出,以便我的代码的读者能够意识到它?

2 个答案:

答案 0 :(得分:1)

我选择了内联注释和空行:

 $scope.addText = function (x, y, text, textcolor, id) {
                    var segmentText = document.createElementNS('http://www.w3.org/2000/svg', 'text');
                    segmentText.setAttribute('x', x);
                    segmentText.setAttribute('y', y);
                    segmentText.textContent = text;
                    segmentText.setAttribute('fill', textcolor);
                    segmentText.setAttribute('font-weight', 'bold');
                    segmentText.setAttribute('id', id);
                    svg.appendChild(segmentText);
                };


                $scope.addLine = function (id, x1, y1, x2, y2, color) {
                    var newLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
                    newLine.setAttribute('id', id);
                    newLine.setAttribute('x1', x1);
                    newLine.setAttribute('y1', y1);
                    newLine.setAttribute('x2', x2);
                    newLine.setAttribute('y2', y2);
                    newLine.setAttribute('style', color);
                    svg.appendChild(newLine);
                };

                $scope.addRect = function (x, y, rx, ry, width, height, rectcolors, id, attr) {
                    $scope.hidechild = false;
                    var rectangle = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
                    rectangle.setAttribute('x', x);
                    rectangle.setAttribute('y', y);
                    rectangle.setAttribute('rx', rx);
                    rectangle.setAttribute('ry', ry);
                    rectangle.setAttribute('id', id);
                    rectangle.setAttribute('class', 'hiderect');
                    rectangle.setAttribute('width', width);
                    rectangle.setAttribute('height', height);
                    rectangle.setAttribute('style', rectcolors);
                   }

但我也确实发现@Kayaman建议的解决方案很吸引人,因为它使代码读取更像是描述了业务逻辑。

答案 1 :(得分:-1)

为了让它真正脱颖而出,你可以制作一个单独的方法,也许是在一个单独的课程中:

long quantityToDecrease = negate(reservation.getQuantity());

它可能看起来像是过度杀戮,但我认为这样你会得到最好的读者关注。

此外,如果您在很多地方使用它,也许您可​​以编写自己的NumberUtil类或该方向的东西,您可以在其中定义您的否定方法。使其类似于:

long quantityToDecrease = NumberUtil.negate(reservation.getQuantity());