ruby Ruby中的命令模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby Ruby中的命令模式相关的知识,希望对你有一定的参考价值。

class Concierge
  attr_reader :request_list
  
  def initialize
    @request_list = []
  end
  
  def act_on_requests
    @request_list.each(&:execute)
  end
end

class HotelService
  attr_reader :data

  def initialize(data)
    @data = data
  end

  ##
  #  @abstract
  def execute
    raise NotImplementedError
  end
end


class RoomService < HotelService
  attr_reader :kitchen
  
  def initialize(data)
    super(data)
    @kitchen = Kitchen.new
  end
  
  def execute
    kitchen.cook_for(data)
  end
end

class LaundryService < HotelService
  attr_reader :cleaning_dpt
  
  def initialize(data)
    super(data)
    @cleaning_dpt = CleaningDepartment.new
  end
  
  def execute
    cleaning_dpt.do_laundry_for(data)
  end
end

class TripPlanningService < HotelService
  attr_reader :tripAdvisor
  
  def initialize(data)
    super(data)
    @tripAdvisor = TripAdvisor.new
  end
  
  def execute
    tripAdvisor.plan_for(data)
  end
end

以上是关于ruby Ruby中的命令模式的主要内容,如果未能解决你的问题,请参考以下文章

ruby Ruby中的单例模式

ruby

运行 Ruby 命令时,PATH 中不安全的世界可写目录 /Users/username,模式 040777

Ruby 中的简单 DSL

ruby Ruby中的简单命令行解析器

雷林鹏分享:Ruby 命令行选项