Оо я использую паттерн компоновщик(composite). Но не знал что он так называется. Круто!! Честно говоря помню как я его первый раз из себя выдавливал. Это было сложно. Знал бы я раньше что есть паттерны... эх
Сергей, здравствуйте. С интересом смотрю Ваши лекции. Просто и понятно. Спасибо. У меня вопрос по Итератору (38:48 по хронометражу). В методе "Создай итератор" в "Агрегате" итератор создается не единожды насколько я понимаю. Что если запросов к коллекции будет много? Например, есть коллекция пользователей (ConcurrentMap) на сервере. В зависимости от запросов подключенных к серверу пользователей (которых может быть очень много) нужно искать в этой коллекции того или иного пользователя и менять его свойства. Повторюсь, коллекция большая, запросов к коллекции много. Не слишком ли расточительно каждый раз создавать итератор фабрикой ? Или в таких ситуациях этот способ следует заменить чем-то другим ? Или я вАААще не понял о чем речь ? :) Заранее спасибо за ответ.
По брижду не оч. ясно: на 21:47 говориться, что каждый из "друзей" (классов абстракции) должен вызывать методы своего парента (базового класса в абстракции). Но в википедии в java-примере реализации моста "друг" (класс Circle) вызывает напрямую методы реализации, через ссылку на реализацию( на Drawer drawer) у своего парента (Shape - базового класса в абстракции). Чему верить?
Я думаю, что достаточно соблюдать принцип, что ссылка на реализацию содержится в паренте и наследники могут ей пользоваться. Это ничем не отличается от вызова методов парента, если каждый из этих методов содержит одну строчку вызова реализации. Сергей же говорит о том, что наследники не должны иметь своих собственных ссылок на реализацию.
Сергей, большое спасибо за доходчивое изложение и Ваш альтруизм. Дай вам Бог мира и благополучия.
Случайно открыл исходный код на дельфи. Чуть слёзы не навернулись от настальгии. Боже, как это было давно. Тёплое ламповое программирование :)
Proxy: 1:28
Composite: 5:48
Bridge: 16:12
Facade: 31:30
Interpretator: 34:50
Iterator: 36:14
Command: 42:05
State: 51:46
Strategy: 55:32
Оо я использую паттерн компоновщик(composite). Но не знал что он так называется. Круто!! Честно говоря помню как я его первый раз из себя выдавливал. Это было сложно. Знал бы я раньше что есть паттерны... эх
Извиняюсь конечно что придираюсь, но оператору стоит отказаться от автоматического баланса белого при съемках такого типа.
Сергей, здравствуйте. С интересом смотрю Ваши лекции. Просто и понятно. Спасибо. У меня вопрос по Итератору (38:48 по хронометражу). В методе "Создай итератор" в "Агрегате" итератор создается не единожды насколько я понимаю. Что если запросов к коллекции будет много? Например, есть коллекция пользователей (ConcurrentMap) на сервере. В зависимости от запросов подключенных к серверу пользователей (которых может быть очень много) нужно искать в этой коллекции того или иного пользователя и менять его свойства. Повторюсь, коллекция большая, запросов к коллекции много. Не слишком ли расточительно каждый раз создавать итератор фабрикой ? Или в таких ситуациях этот способ следует заменить чем-то другим ? Или я вАААще не понял о чем речь ? :) Заранее спасибо за ответ.
О! Молодой Немчинский! :)
В паттерне "Bridge" должна быть аггрегация вместо использования? Или нет?
Спасибо. Скоро будет продолжение?
Жаль, что на таком важном паттерне как Proxy лектор останавливается на 4 минуты
Эти курсы проводятся в самой компании?
По брижду не оч. ясно: на 21:47 говориться, что каждый из "друзей" (классов абстракции) должен вызывать методы своего парента (базового класса в абстракции). Но в википедии в java-примере реализации моста "друг" (класс Circle) вызывает напрямую методы реализации, через ссылку на реализацию( на Drawer drawer) у своего парента (Shape - базового класса в абстракции).
Чему верить?
Да-да, я тоже обратил внимание, что это чепуха какая-то. По ходу чувак заговорился
идея как раз в том, что бы и вызывать методы имплементоров через абстракцию имплементора
Спасибо, а то автор не удосужился отреагировать
Я думаю, что достаточно соблюдать принцип, что ссылка на реализацию содержится в паренте и наследники могут ей пользоваться. Это ничем не отличается от вызова методов парента, если каждый из этих методов содержит одну строчку вызова реализации.
Сергей же говорит о том, что наследники не должны иметь своих собственных ссылок на реализацию.