Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # adapter pattern.rb
- class Player
- def attack
- raise "pls override"
- end
- def defense
- raise "pls override"
- end
- end
- # 后卫
- class Guards < Player
- attr :name
- def initialize(name)
- @name = name
- end
- def attack
- puts "后卫 #{name} 进攻"
- end
- def defense
- puts "后卫 #{name} 防守"
- end
- end
- # 外籍中锋
- class ForeignCenter < Player
- attr :name
- def initialize(name)
- @name = name
- end
- def chinese_attack
- puts "外籍中锋 #{name} 进攻"
- end
- def chinese_defense
- puts "外籍中锋 #{name} 防守"
- end
- end
- class Translator < Player
- attr :wjzf
- def initialize(name)
- @wjzf ||= ForeignCenter.new(name)
- end
- def attack
- @wjzf.chinese_attack
- end
- def defense
- @wjzf.chinese_defense
- end
- end
- m = Guards.new("麦迪")
- m.attack
- m.defense
- ym = Translator.new("姚明")
- ym.attack
- ym.defense
Add Comment
Please, Sign In to add comment