【发布时间】:2015-05-17 15:33:04
【问题描述】:
对于两个对象之间的关联:
如果我有一个“Office”对象和一个“Person”对象。我会将其建模为一个关联,并且我提出了以下示例代码作为执行它的一种方式。
但是看着它,有很多我想要更舒服的东西。
第一个问题: Office 对象实际上是一个类。我这样做是因为我只想要一个办公室 - 实例化它感觉不对。但是我觉得我在将实例化的人与“静态”类之间的关系描述为关联时遗漏了一些东西?
第二个问题:我通过将一个对象传递给另一个对象来强制这两个对象之间的关联。这是关联两个类的典型方式吗?
class Office
@log = []
@occupants = []
def self.occupants
@occupants
end
def self.log
@log
end
def self.log_entry(person)
if @occupants << person
@log << "#{person.name} entered Office: #{Time.now}"
end
end
def self.log_exit(person)
if @occupants.delete(person)
@log << "#{person.name} exited Office: #{Time.now}"
end
end
end
class Person
attr_accessor :name
def initialize(name)
@name = name
end
end
zach = Person.new('Zach')
bill = Person.new('Bill')
Office.log_entry(zach)
Office.log_entry(bill)
Office.log_exit(zach)
puts Office.log
【问题讨论】:
标签: ruby uml associations