重构现有类以使用继承
假设我们有两个类,Cat
和 Dog
。
class Cat
def eat
die unless has_food?
self.food_amount -= 1
self.hungry = false
end
def sound
puts "Meow"
end
end
class Dog
def eat
die unless has_food?
self.food_amount -= 1
self.hungry = false
end
def sound
puts "Woof"
end
end
eat
方法在这两个类中完全相同。虽然这有效,但很难维护。如果有更多的动物使用相同的 eat
方法,问题会变得更糟。继承可以解决这个问题。
class Animal
def eat
die unless has_food?
self.food_amount -= 1
self.hungry = false
end
# No sound method
end
class Cat < Animal
def sound
puts "Meow"
end
end
class Dog < Animal
def sound
puts "Woof"
end
end
我们创建了一个新类 Animal
,并将我们的 eat
方法移动到该类。然后,我们让 Cat
和 Dog
继承了这个新的常见超类。这消除了重复代码的需要