繁体   English   中英

原则2让我质疑馆藏的目的,一般而言,馆藏中我可以采用哪种方法?

[英]Doctrine 2 has me questioning the objective of collections, what kinds of methods can i have within collections, in general?

我正在阅读Doctrine 2,并且遇到了这篇文章http://groups.google.com/group/doctrine-dev/browse_thread/thread/3b21fcea5a408aae ,用户在其中希望使用自定义集合扩展PersistantCollection类。 。 在其中,另一个用户做出响应,

集合是集合,它们包含元素并提供以下手段
遍历它们或进行其他典型的收集工作(计数,过滤
项,添加项,删除项...),始终不关心
物品(产品,物品或其他物品)的确切性质。
集合上的getTotalPrice或getTotalWeight完全是
在大多数情况下,放错位置和扩展集合类都是一个类似的坏主意
情况。 它违反了许多准则,单一责任
原则就是其中之一。 将您的业务逻辑放在您的域中
对象/类本身,而不是集合。 集合是
只是通用数据容器。

我的问题是,如果我想对书籍对象的集合进行某些操作,例如将它们分类,并计算每个类别中的数量,那么在集合类中创建方法来这样做是不正确的吗? 还是应该在实体内创建一个静态函数来对集合进行排序? 我只是不太确定我应该把这种类型的功能放在哪里。...在此先感谢您抽出宝贵时间阅读这篇文章。 干杯!

不,我强烈建议您不要使用自定义集合。 Collection接口提供了一个完整的公共API,可以以任何方式操作该集合,而无需对集合进行子类化。

在您的Category您可以编写一种对$books集合进行排序的方法。 ...并且可能将其挂接到PostLoad事件中。 (为什么您建议使用static方法?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM