# L!MP (13.11.2016 / 21:40)Ну так убери интерфейс с коллектора.
Ну так я же обозначил проблему: как бы дважды реализует интерфейс.
Или ты любитель, чтоб обязательно у каждого класса был свой собственный отдельный интерфейс?
# L!MP (13.11.2016 / 21:40)Ну так убери интерфейс с коллектора.
Ну так я же обозначил проблему: как бы дважды реализует интерфейс.
# AlkatraZ (13.11.2016 / 21:49)Не в том речь, у коллектора должен быть интерфейс. Из приведённого примера это не исходит, я же не буду всё описывать тут.
Или ты любитель, чтоб обязательно у каждого класса был свой собственный отдельный интерфейс?
По сути, EntityManager и EntityColletor - это не пример иерархичного наследования, т.е ни один из этих двух классов не является над или под множеством другого.
Так что тут более логично использовать горизонтальное пере использование, т.е Trait.
Только вот тупо как-то что в результате этого, класс EntityCollector нужен только для того, что бы подключить trait, ведь никакой дополнительной логики там не нужно, по крайней мере пока.
# L!MP (13.11.2016 / 22:06)А как же интерфейс?
По сути, EntityManager и EntityColletor - это не пример иерархичного наследования, т.е ни один из этих двух классов не является над или под множеством другого.
Так что тут более логично использовать
# AlkatraZ (13.11.2016 / 22:07)
А как же интерфейс?
Или вся реализация через Трейт?
А как же интерфейс?
interface EntityCollectorInterface {}
interface EntityManagerInterface extends EntityCollectorInterface {}
trait EntityCollectorTrait {}
class EntityManager implements EntityManagerInterface {
use EntityCollectorTrait;
}
class EntityCollector implements EntityCollectorInterface {
use EntityCollectorTrait;
}# L!MP (13.11.2016 / 22:26)Ну не знаю, такая сложная иерархия интерфейсов нужна редко.
Ну как-то так:
interface EntityCollectorInterface {}
interface EntityManagerInterface extends EntityCollectorInterface {}
trait EntityCollectoTrait {}
class EntityManager implements EntityMa
# AlkatraZ (13.11.2016 / 22:29)Мне нужен биндинг к интерфейсу, а не к реализации.
Ну не знаю, такая сложная иерархия интерфейсов нужна редко.
В основном для ловли ошибок.
Возможно я полностью не понял вопрос, но думать надо в сторону вопроса: в чем разница коллекции и менеджера? Тобишь чем отличается один интерфейс от другого. В той же доктрине менеджер сущностей это совсем не то же самое, что коллекция.
Delphinum, Да тут названия от балды.
Вот смотри, есть коллектор, он реализует только функционал сбора и определённых манипуляций над содержимым, т.е: добавить, проверить есть ли, получить, удалить элемент.
И есть менеджер, он сам выступает в роли, как бы, коллекции рут уровня и управляет ещё пулом коллекций второго уровня. Ну и кроме этого содержит ещё дополнительную логику.
L!MP, я сейчас чуть маленько занят, если хочешь скинь в личку скайп свой, я голосом попытаюсь ответить, или завтра в теме как освобожусь.