希望能够为我打算构建的RoR应用程序的建模决策提供一些指导。这将是一个租赁平台,承载多个租赁供应商。我假设以下类和/或模块,我的问题是关于建模,组合和继承。我想下面的类和或模块:面向对象的建模建议
- 产品(模块包括在ProductLibrary,VendorCatalogue和订单?)
- 产品库(每一个可能的租赁项目,产品的has_many对象,1..N的产品)
- 供应商(1..1与供应商目录,1..n与订单)
- 供应商目录(has_many'产品库对象'的产品和每个'供应商'的个人,1..1与供应商)
- 客户(1..n订单)
- 订单(由供应商目录中的产品,1..1与客户,1..n与产品和n..1与供应商)
- 也许应该有一个帐户类与普通帐户属性和方法,这两个供应商和客户继承?
对于我上面列出的方式,不要有任何不明确的地方,我是OO和编程的新故障。对于我下面的想法,我能有任何想法和建议吗?上述目的的最佳造型:
- 我的想法是,产品应该是一个模块,如其他类“对我们的产品”,而不是“为产品(?)?
- 我不确定我甚至需要一个产品库(它只是products.all?)?
- 由于有多个供应商,每个供应商有不同的产品范围/目录,我确实需要一个VendorCatalogue对象来包含每个供应商独特的Product对象集合。这是做这件事的最好方法吗?
- 应该让供应商和客户继承父帐户类以保持DRY?
- 建立Products类/模块,ProductsLibrary(如果rqd),然后是Vendors,VendorCatalogue,然后是Customers,然后是Orders,最合理的地方是开始吗?
对上述任何帮助表示赞赏,谢谢。
感谢斯坦尼斯拉夫,思考,研究和了解更多关于答案中的要点。例如。直到今天才听说版本库模式;)感谢您的指导。 – jbk 2014-11-23 14:18:00
如果我帮了你,这将是伟大的,如果你标记我的答案是正确的:) – 2014-11-23 14:20:17
顺便说一下,AR ::模型是一个简单的轨活动记录模型,没有什么复杂 – 2014-11-23 14:21:22