Разбор ООП с Delphinum

26.91K
.
╭∩╮ (`-`) ╭∩╮
# L!MP (13.11.2016 / 21:40)
Ну так я же обозначил проблему: как бы дважды реализует интерфейс.
Ну так убери интерфейс с коллектора.
Или ты любитель, чтоб обязательно у каждого класса был свой собственный отдельный интерфейс?
.
# AlkatraZ (13.11.2016 / 21:49)
Или ты любитель, чтоб обязательно у каждого класса был свой собственный отдельный интерфейс?
Не в том речь, у коллектора должен быть интерфейс. Из приведённого примера это не исходит, я же не буду всё описывать тут.
.
L!MP
По сути, EntityManager и EntityColletor - это не пример иерархичного наследования, т.е ни один из этих двух классов не является над или под множеством другого.
Так что тут более логично использовать горизонтальное пере использование, т.е Trait.
Только вот тупо как-то что в результате этого, класс EntityCollector нужен только для того, что бы подключить trait, ведь никакой дополнительной логики там не нужно, по крайней мере пока.
.
╭∩╮ (`-`) ╭∩╮
# L!MP (13.11.2016 / 22:06)
По сути, EntityManager и EntityColletor - это не пример иерархичного наследования, т.е ни один из этих двух классов не является над или под множеством другого.
Так что тут более логично использовать
А как же интерфейс?
Или вся реализация через Трейт?
.
L!MP
# 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)
Ну не знаю, такая сложная иерархия интерфейсов нужна редко.
В основном для ловли ошибок.
Мне нужен биндинг к интерфейсу, а не к реализации.
.
Возможно я полностью не понял вопрос, но думать надо в сторону вопроса: в чем разница коллекции и менеджера? Тобишь чем отличается один интерфейс от другого. В той же доктрине менеджер сущностей это совсем не то же самое, что коллекция.
.
L!MP
Delphinum, Да тут названия от балды.
Вот смотри, есть коллектор, он реализует только функционал сбора и определённых манипуляций над содержимым, т.е: добавить, проверить есть ли, получить, удалить элемент.
И есть менеджер, он сам выступает в роли, как бы, коллекции рут уровня и управляет ещё пулом коллекций второго уровня. Ну и кроме этого содержит ещё дополнительную логику.
.
L!MP, я сейчас чуть маленько занят, если хочешь скинь в личку скайп свой, я голосом попытаюсь ответить, или завтра в теме как освобожусь.
Всего: 713