引数
引数、変数によってオブジェクトに適切な名前を与えるのはあたりまえのことです。
class Calc def plus(x, y) x + y end end calc = Calc.new calc.plus(1, 2)
この場合、 #plus
の中で 1
は x
、 2
は y
と名前付けがされており、それぞれ加算式の左の項と右の項として名前が与えられている。
これは実は抽象化が足りていなくて、本来なら 1.plus(2)
と呼び出されるべき場面で、その場合 2
に相当する適切な名前は多分 y
ではなく another_number
とかそういう名前になる。
class Number def plus(another_number) self + another_number end end
ではこれが『値段』オブジェクトだったらどうか、という場合もある。
class CashRegiser attr_reader :total_price def plus(price) @total_price += price end end
レジで計算するときは基本加算だけで済むので、とにかく何らかの金額を加算してくことになる。
cachier = CashRegister.new cachier.plus(Potato.new.price) cachier.plus(Pasta.new.price)
いますごく安直に pirce
とか名前つけてるけど、これは本当に price
でいいのか、とか、そういうことを延々考えてる。
こんがらがってきた。