0
我有一整套的功能優先功能看起來像這樣:是方法而不是在這種情況下
package rules;
import "project/some"
func frobDiscountLimit(frob some.Frob, maxDiscount float64) (RuleStatus, string)
func frobDiscountPercentageLimit(frob some.Frob, maxDiscountPercentage float64) (RuleStatus, string)
func frobUsageLimit(frob some.Frob, interval valueInterval) (RuleStatus, string)
func frobPermanentExpiryLimit(frob some.Frob) (RuleStatus, string)
func frobVoucherValidity(frob some.Frob, maxValidityDays uint) (RuleStatus, string)
用例:
package rules
import "project/some"
func doChecks(frob some.Frob) {
status, message := frobDiscountLimit(frob, 100)
if status != PASSED {
....
}
... evaluate all remaining rules here ...
}
我不知道它有什麼優勢寫它像:
func (f someFrob) discountLimit(maxDiscount float64) (RuleStatus, string)
...
寫起來似乎較短,但我不確定哪一種是正確的風格。因爲我不認爲這些驗證方法是「對象的一部分」,所以它們不屬於some.Frob
對象的行爲的一部分(與some.Frob
屬性的吸氣器或設置器不同)。
是的,我喜歡這樣,歡呼! – Max