一个简单应用程序的对象建模

时间:2011-12-12 16:09:38

标签: ruby-on-rails oop object symfony1

我对对象建模感到困惑,我将使用一个简单的借阅库项目进行说明。

图书馆有书(每本书一本,以保持简单)和顾客。如果该书不借给另一位赞助人,顾客可以借书。

这需要3个班级,Book,Patron和Loan。

图书将有一个ID和一个名字。赞助人将有一个id和名字。贷款将有id,book_id,patron_id和贷款日期。

贷款和退货方式将在何处定义?这是书籍,赞助人或贷款对象的方法吗?

书籍是登陆的人,赞助人是借书的人,贷款是保留特定贷款业务的所有细节的人。

为什么真正需要贷款课程?当然,上面提到的字段需要DB表,但是从MVC框架的角度来看(例如:Symfony或Rails)应该将它定义为模型吗?

我知道这是一个简单而且已经解决的问题,但是在与oop设计长时间脱节之后,我并不能正确地“查看”这个问题!

2 个答案:

答案 0 :(得分:2)

创建一个负责创建Loan对象的类。您可以调用此LoanCreator,或者如果您以下列方式考虑它有助于您将其称为图书管理员。您可以将这个新类传递给Book和Patron对象,它会为您创建贷款。通常,如果您发现自己不确定某个方法是否属于某个特定类,那么也许是时候考虑创建一个新类了。

答案 1 :(得分:1)

在我看来,你需要2个班级

  1. 赞助人
  2. loanreturn方法应该进入Book课程,因为这些操作正在发生在书籍上。但正如你所说,应该有一个不同的贷款表来保存这些记录。

    回到MVC时,它们应该作为模型实现。