ruby 描述Ruby中的DCI(数据,上下文,交互)架构。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 描述Ruby中的DCI(数据,上下文,交互)架构。相关的知识,希望对你有一定的参考价值。

# The data, doesn't change offen.

class User
  def initialize
    @name = "towry"
  end
end
# interaction, the role.

module Customer
  def buy(book)
    puts @name
    puts "bought a book"
    # or do other thing about the
  end
end
require_relative "customer"
require_relative "user"

# context bind role to object.
# by using the extend method in ruby.
# now the data object has some behaviors that get from the role class(Customer).
class Context
  def initialize(user, book)
    @customer, @book = user, book
    @customer.extend(Customer)
  end

  def call
    @customer.buy(@book)
  end
end

user = User.new
ctx = Context.new(user, "a book")
ctx.call

以上是关于ruby 描述Ruby中的DCI(数据,上下文,交互)架构。的主要内容,如果未能解决你的问题,请参考以下文章

Ruby 示例中的 DCI 中的 Thread.current 是啥?

javascript 中的数据上下文交互 (DCI) 和事件编程

Ruby 中的“主要”是啥?

如何理解 DCI 模式

Ruby on Rails 中的 Runner

Ruby on Rails 中的社交媒体共享按钮