2016-04-08 1 views
1

J'ai une entité qui représente une réservation d'une certaine quantité. Il existera également des entités où cette propriété est négative indiquant un manque de disponibilité pour la réservation. La logique va alors diminuer la quantité d'une réservation avec une valeur de propriété de quantité positive. J'ai donc cette déclaration:Comment faire ressortir un code unaire important?

long quantityToDecrease = -reservation.getQuantity(); 

Comment puis-je faire le moins unaire se démarquer pour que le lecteur de mon code sera au courant?

+2

Créez une méthode bien nommée qui retournera uniquement '-reservation.getQuantity();' et l'utilisera à la place. C'est à dire. 'quantityToDecrease = notAvailable (réservation);'. – Kayaman

+0

Vous pouvez toujours ajouter des commentaires. –

+0

Mettez un zéro devant, un commentaire ou les deux. Ne suivez pas les conseils ineptes pour implémenter une méthode séparée: ce serait la première chose que je supprimerais dans une révision de code. En tout cas, cela ne fait que déplacer le problème. – EJP

Répondre

1

Je suis allé avec le commentaire en ligne et des lignes vides autour:

// note the unary minus 
long quantityToDecrease = -reservation.getQuantity(); 

Mais je fais aussi trouver la solution proposée par @Kayaman attrayante, car elle rend le code plus lu comme les busines la logique est décrite.

-1

Pour faire ressortir vraiment vous pouvez faire une méthode séparée et peut-être dans une classe séparée:

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

Il peut ressembler à plus de tuer, mais je pense que cette façon, vous attirer l'attention des lecteurs le meilleur.

Aussi, si vous utilisez ce dans beaucoup d'endroits peut vous pouvez écrire votre propre classe NumberUtil ou quelque chose dans ce sens, où vous pouvez définir votre méthode de negate à en faire quelque chose comme:.

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