犬の体重変化を追跡する仕組みをRubyで作る場合、オブジェクト指向の設計を活用すると効率的です。犬ごとに体重の履歴を管理できるように設計することがポイントです。
基本クラスの設計
まず、犬を表すクラスを作成し、名前や年齢、体重履歴を属性として保持します。
class Dog
attr_accessor :name, :age, :weight_history
def initialize(name, age)
@name = name
@age = age
@weight_history = []
end
end
体重記録の追加メソッド
体重を追加するメソッドを用意すると、日付と体重の組み合わせで記録できます。
class Dog
# 既存のコード省略
def add_weight(weight, date = Date.today)
@weight_history << { date: date, weight: weight }
end
end
体重履歴の確認
記録された体重を一覧で確認するメソッドを作ると便利です。
class Dog
# 既存のコード省略
def show_weight_history
@weight_history.each do |entry|
puts "#{entry[:date]}: #{entry[:weight]} kg"
end
end
end
利用例
犬オブジェクトを作成し、体重を追加・表示する例です。
require 'date'
puchi = Dog.new("プチ", 3)
puchi.add_weight(5.2, Date.new(2024,3,1))
puchi.add_weight(5.4, Date.new(2024,4,1))
puchi.show_weight_history
# 出力:
# 2024-03-01: 5.2 kg
# 2024-04-01: 5.4 kg
まとめ
Rubyではオブジェクト指向を活用して、犬クラスに体重履歴の配列と追加・表示メソッドを持たせることで、簡単に体重変化を記録・管理できます。この設計により、複数の犬の体重履歴も容易に扱うことが可能です。


コメント