#
# 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)实现自动拆分全名的方法。具体来说,如果一个类(如EnglishName)实现了name方法,那么可以通过模块混入的方式自动获得given_name和family_name方法,从而方便地从全名中提取出名字和姓氏。
360

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



