ruby
1[a.rb] 2class A #様々なメソッドが格納されているクラス 3 attr_accessor :calorie_of_main_dish, :calorie_of_side_dish 4 5 def initialize 6 @calorie_of_main_dish = 0 7 @calorie_of_side_dish = 0 8 end 9 10 def suggest_main_dish 11 puts "料理の提案をします" 12 main_dish_and_calorie_key = list_of_main_dish_and_calorie.keys.sample 13 @calorie_of_main_dish = list_of_main_dish_and_calorie[main_dish_and_calorie_key] 14 puts "・メイン料理: #{main_dish_and_calorie_key}(#{calorie_of_main_dish} kcal)" 15 end 16 def suggest_side_dish 17 side_dish_and_calorie_key = list_of_side_dish_and_calorie.keys.sample 18 @calorie_of_side_dish = list_of_side_dish_and_calorie[side_dish_and_calorie_key] 19 puts "・副菜: #{side_dish_and_calorie_key}(#{calorie_of_side_dish} kcal)" 20 end 21 def output_calorie_of_suggested_dishes 22 total_calorie_of_suggested_dishes = calorie_of_main_dish + calorie_of_side_dish 23 puts "これらの料理の総カロリーは#{total_calorie_of_suggested_dishes} kcalです" 24 end 25end 26 27[b.rb] 28class B #class A で使う、様々な料理やカロリーなどのデータが格納されているクラス 29 attr_accessor :list_of_main_dish_and_calorie, :list_of_side_dish_and_calorie 30 31 def initialize 32 @list_of_main_dish_and_calorie = nil 33 @list_of_side_dish_and_calorie = nil 34 end 35 36 def calorie_labeling 37 @list_of_main_dish_and_calorie= { 38 "ハンバーグ" => 437, 39 "ラーメン" => 443, 40 : 41 } 42 43 @list_of_side_dish_and_calorie = { 44 "シーザーサラダ" => 287, 45 "キャベツサラダ" => 194, 46 : 47 } 48 end 49end
これらのクラスは継承関係でもないと思うので
class B < A
とするのはおかしいと思います。
そこで下記のようにすべてのクラス名を"A"で統一してしまい、元のclass B 内の変数データをclass A に追加(上書き)するという形をとっても良いのでしょうか。
ruby
1[a.rb] 2require "./b" 3class A 4 5[b.rb] 6class A #元のclass B
それともいくらクラス内で使う変数データを格納してあるとしても、同じクラス名を使うと混乱する可能性があるため、やめたほうがいいのでしょうか。
やめたほうがいい場合、他に良い方法があれば教えていただきたいです。
回答5件
あなたの回答
tips
プレビュー