#
# Module Mixin
# 如果提供了name方法那么given_name和family_name方法会自动获得功能。
#
module Name
def given_name
names = self.name.split(' ')
names[0]
end
def family_name
names = self.name.split(' ')
names[1]
end
end
#
# 如果EnglishName类提供了name方法那么given_name和family_name方法会自动获得功能。
#
class EnglishName
include Name
def initialize(fullname)
@fullname = fullname
end
def name
@fullname
end
end
en = EnglishName.new("Jack John")
puts en.name
puts en.given_name
puts en.family_name
# Module Mixin
# 如果提供了name方法那么given_name和family_name方法会自动获得功能。
#
module Name
def given_name
names = self.name.split(' ')
names[0]
end
def family_name
names = self.name.split(' ')
names[1]
end
end
#
# 如果EnglishName类提供了name方法那么given_name和family_name方法会自动获得功能。
#
class EnglishName
include Name
def initialize(fullname)
@fullname = fullname
end
def name
@fullname
end
end
en = EnglishName.new("Jack John")
puts en.name
puts en.given_name
puts en.family_name
本文介绍了一种名为ModuleMixin的技术,该技术允许通过提供name方法来自动实现given_name和family_name的功能。通过具体示例EnglishName类展示了如何使用这种技术。
961

被折叠的 条评论
为什么被折叠?



