使用 Getter, Setter
Bad:
Bad:
def make_bank_account
# …
{
balance: 0
# …
}
end
account = make_bank_account
account[:balance] = 100
account[:balance] # => 100
Good:
class BankAccount
def initialize
# this one is private
@balance = 0
end
# a “getter” via a public instance method
def balance
# do some logging
@balance
end
# a “setter” via a public instance method
def balance=(amount)
# do some logging
# do some validation
@balance = amount
end
end
account = BankAccount.new
account.balance = 100
account.balance # => 100
Good:
class Toy
attr_accessor :price
end
toy = Toy.new
toy.price = 50
toy.price # => 50
转载请注明:XAMPP中文组官网 » Day 24 Objects and Data Structures – Clean Code Ruby