Я читал о Doctrine 2 и наткнулся на этот пост http://groups.google.com/group/doctrine-dev/browse_thread/thread/3b21fcea5a408aae,, в котором пользователь хотел расширить класс PersistantCollection с помощью пользовательской коллекции. В нем другой пользователь отвечает,
Коллекции - это коллекции, они содержат элементы и предоставляют средства для
перебирать их или делать другие типичные вещи для сбора (count, filter
элементы, добавлять элементы, удалять элементы, ...), всегда не заботясь о
точный характер предметов (продуктов, изделий или чего-либо еще).
getTotalPrice или getTotalWeight для коллекции полностью
неуместные и расширяющие классы коллекций похожая плохая идея в большинстве
ситуации. Это противоречит многим принципам, единоличная ответственность
принцип, являющийся одним из них. Разместите свою бизнес-логику в своем домене
сами объекты / классы, а не в коллекциях. Коллекции
просто общие контейнеры данных.
У меня вопрос: если бы я хотел что-то сделать с коллекцией объектов книги, например отсортировать их по категориям и посчитать сумму в каждой категории, было бы неправильно создавать метод в классе коллекции для этого? Или я должен сделать статическую функцию внутри объекта для сортировки коллекции? Я просто не совсем уверен, куда бы я поместил этот тип функции .... Заранее спасибо, что нашли время для вашего дня, чтобы прочитать этот пост. Ура!