如何区分数据库Vector类和框架Vector类?

时间:2011-02-06 12:37:44

标签: ruby-on-rails activerecord

# Stores <x, y, z> triplet in database.
class Vector < ActiveRecord::Base
composed_of :vector, :mapping => [%w(x x), %w(y y), %w(z z)]
end

# Immutable vector class.
class Vector
  attr_reader :x, :y, :z

  def initialize(x, y, z)
    @x, @y, @z = x, y, z
  end

  def add(v)
    Vector.new(@x + v.x, @y + v.y, @z + v.z)
  end

  # etc.
end

如何连接和区分两者?我认为只有AR Vector(并将所有方法和操作放在那里)并不是一个好主意..是否有一些我缺少的模式?我可以将第一个重命名为DbVector或其他东西,但我想知道是否有更好的解决方案。

1 个答案:

答案 0 :(得分:1)

首先:Ruby已经内置了Vector class。我会用它。

然后你需要消除名称的歧义,我宁愿去命名它们 - 也许是DB::Vector