私はファロの内部を覗きや算術+の定義と気づいた - は非常に似て:算術+と基本的に重複したコードのPharo定義はなぜですか?
+ aNumber
"Refer to the comment in Number + "
aNumber isInteger ifTrue:
[self negative == aNumber negative
ifTrue: [^ (self digitAdd: aNumber) normalize]
ifFalse: [^ self digitSubtract: aNumber]].
aNumber isFraction ifTrue:
[^Fraction numerator: self * aNumber denominator + aNumber numerator denominator: aNumber denominator].
^ aNumber adaptToInteger: self andSend: #+
と
- aNumber
"Refer to the comment in Number - "
aNumber isInteger ifTrue:
[self negative == aNumber negative
ifTrue: [^ self digitSubtract: aNumber]
ifFalse: [^ (self digitAdd: aNumber) normalize]].
aNumber isFraction ifTrue:
[^Fraction numerator: self * aNumber denominator - aNumber numerator denominator: aNumber denominator].
^ aNumber adaptToInteger: self andSend: #-
を、私はそれを見るように、これは反対に完全ですものを設計するOOの方法は、一般的に悪いです。なぜ誰かがより良い解決策を見つけられないのですか?私は考えることができる