Builder Line
Builder Line
  • 96
  • 191 510
Java. Пишем сканер QR кода для Android
Просмотрев данное видео, Вы с нуля на языке программирования Java сможете написать полноценный сканер QR-кода для устройств на платформе Android. Видео демонстрирует подробный алгоритм разработки приложения в среде Android Studio.
Переглядів: 3 928

Відео

Python. Паттерн проектирования программ "Посетитель (Visitor)".
Переглядів 9583 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Посетитель», позволяющий добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться. Преимуществом паттерна является то, что он объединяет родственный операции в одном классе, упрощает добавление операций, работающих со сложными структурами объектов. Отрицательным моменто...
Python. Паттерн проектирования программ "Шаблонный метод (Template method)".
Переглядів 8463 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Шаблонный метод», определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом. Преимуществом паттерна является то, что он облегчает повторное использование кода.
Python. Паттерн проектирования программ "Стратегия (Strategy)".
Переглядів 1,8 тис.3 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Стратегия», который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс. Положительными моментами является то, что паттерн изолирует код алгоритмов от остальных классов, алгоритмы можно быстро заменять, во время выполнения программы.
Python. Паттерн проектирования программ "Состояние (State)".
Переглядів 2 тис.3 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Состояние», который позволяет объектам менять поведение в зависимости от своего состояния. Паттерн может найти широкое применение в системах где необходимо избавиться от большого количества условных операторов.
Python. Паттерн проектирования программ "Наблюдатель (Observer)".
Переглядів 1,9 тис.3 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Наблюдатель», который позволяет одним объектам следить и реагировать на события, происходящие в других объектах.
Python. Паттерн проектирования программ "Снимок (Memento)".
Переглядів 6243 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Снимок», который позволяет сохранять и восстанавливать прошлые состояния объектов, не раскрывая подробностей их реализации. Положительным моментом использования паттерна является, то что он не нарушает инкапсуляции исходного объекта и упрощает его структуру. Недостатком может быть большое количество памяти, выделяемое при...
Python. Паттерн проектирования программ "Посредник (Mediator)".
Переглядів 1 тис.3 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Посредник», который позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник.
Python. Паттерн проектирования программ "Итератор (Iterator)".
Переглядів 8243 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Итератор», который представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого из агрегированных объектов.
Python. Паттерн проектирования программ "Команда (Command)".
Переглядів 1,3 тис.3 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Команда», в котором объект используется для инкапсуляции всей информации, необходимой для выполнения действия или вызова события в более позднее время. Эта информация включает в себя имя метода, объект, который является владельцем метода и значения параметров метода.
Python. Паттерн проектирования программ "Цепочка обязанностей (Chain of responsibility)".
Переглядів 1,2 тис.3 роки тому
В видео рассмотрен пример поведенческого шаблона проектирования программ «Цепочка обязанностей», который предназначенный для организации в системе уровней ответственности.
Python. Паттерн проектирования программ "Заместитель (Proxy)".
Переглядів 1 тис.3 роки тому
В видео рассмотрен пример структурного шаблона проектирования программ «Заместитель», представляющий объект, который контролирует доступ к другому объекту, перехватывая все вызовы к нему. Положительным моментом использования паттерна в клиент-серверном приложении является то, что в нем применяется кэширование ранее полученных данных и тем самым снижается количество запросов к серверу.
Python. Паттерн проектирования программ "Легковес (Flyweight)".
Переглядів 1,1 тис.3 роки тому
В видео рассмотрен пример структурного шаблона проектирования программ «Легковес», который позволяет вместить бóльшее количество объектов в отведённую оперативную память. Легковес экономит память, выделяя и сохраняя общие параметры объектов. Однако при использовании данного паттерна расходуется процессорное время на поиск, а также из-за введения дополнительных классов усложняется код программы.
Python. Паттерн проектирования программ " Фасад (Facade)".
Переглядів 1,5 тис.3 роки тому
В видео рассмотрен пример структурного шаблона проектирования программ «Фасад», позволяющий скрыть сложность системы путём сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы. Шаблон применяется для установки некоторого рода политики по отношению к другой группе объектов.
Python. Паттерн проектирования программ "Декоратор (Decorator)".
Переглядів 1,4 тис.3 роки тому
В видео рассмотрен пример структурного шаблона проектирования программ «Декоратор», предназначенный для динамического подключения объекту дополнительного поведения. Шаблон «Декоратор» предоставляет гибкую альтернативу практике создания подклассов с целью расширения функциональности.
Python. Паттерн проектирования программ "Компоновщик (Composite)".
Переглядів 1,4 тис.3 роки тому
Python. Паттерн проектирования программ "Компоновщик (Composite)".
Python. Паттерн проектирования программ " Мост (Bridge)".
Переглядів 1,7 тис.3 роки тому
Python. Паттерн проектирования программ " Мост (Bridge)".
Python. Паттерн проектирования программ " Адаптер (Adapter)". Реализация на уровне классов.
Переглядів 1,3 тис.3 роки тому
Python. Паттерн проектирования программ " Адаптер (Adapter)". Реализация на уровне классов.
Python. Паттерн проектирования программ " Адаптер (Adapter)". Реализация на уровне объектов.
Переглядів 1,9 тис.3 роки тому
Python. Паттерн проектирования программ " Адаптер (Adapter)". Реализация на уровне объектов.
Python. Паттерн проектирования программ "Прототип (Prototype)".
Переглядів 1,9 тис.3 роки тому
Python. Паттерн проектирования программ "Прототип (Prototype)".
Python. Паттерн проектирования программ "Одиночка (Singleton)".
Переглядів 2,4 тис.3 роки тому
Python. Паттерн проектирования программ "Одиночка (Singleton)".
Разрабатываем чат-бот для Telegram на Python
Переглядів 1973 роки тому
Разрабатываем чат-бот для Telegram на Python
Python. Паттерн проектирования программ "Строитель (Builder)".
Переглядів 4,5 тис.3 роки тому
Python. Паттерн проектирования программ "Строитель (Builder)".
Разрабатываем бота - администратора для Telegram канала на Python
Переглядів 1,9 тис.3 роки тому
Разрабатываем бота - администратора для Telegram канала на Python
Python. Паттерн проектирования программ "Абстрактная фабрика (Abstract Factory)".
Переглядів 6 тис.3 роки тому
Python. Паттерн проектирования программ "Абстрактная фабрика (Abstract Factory)".
Python. Паттерн проектирования программ "Фабричный метод (FactoryMethod)".
Переглядів 13 тис.3 роки тому
Python. Паттерн проектирования программ "Фабричный метод (FactoryMethod)".
C++. Паттерн проектирования программ "Посетитель (Visitor)".
Переглядів 1,7 тис.3 роки тому
C . Паттерн проектирования программ "Посетитель (Visitor)".
C++. Паттерн проектирования программ "Шаблонный метод (Template method)".
Переглядів 8123 роки тому
C . Паттерн проектирования программ "Шаблонный метод (Template method)".
C++. Паттерн проектирования программ "Стратегия (Strategy)".
Переглядів 1,6 тис.3 роки тому
C . Паттерн проектирования программ "Стратегия (Strategy)".
Python. Пишем свой мессенджер на Python
Переглядів 2,2 тис.3 роки тому
Python. Пишем свой мессенджер на Python

КОМЕНТАРІ

  • @бандерасофегенус
    @бандерасофегенус Місяць тому

    а вот этого патерна твое обьяснение понравилось. очень доходчиво для чего патерн нужен

  • @бандерасофегенус
    @бандерасофегенус Місяць тому

    намудрил канеш с обьяснением. по выводу все гораздо понятнее чем по самому коду. там видно что текст растет как снежный ком: один слой, затем накладывается другой, потом третий. надо было просто упомянуть его 2е название - врапер(обертщик) и показать код оборачивая один класс в другой. в целом для меня это самый понятный по смыслу патерн.

  • @бандерасофегенус
    @бандерасофегенус Місяць тому

    а что означает "предоставляет глобальную точку доступа к этому экземпляру"? разве любой обьект типа паблик не такой же вседоступный? я думал обьект в синглтоне вызывается через встроенный метод гетИнстанс... тут вместо него гетКонекшн.

  • @arda8226
    @arda8226 Місяць тому

    Вот это интересно

  • @issatay8876
    @issatay8876 Місяць тому

    почти то же самое что и стратегия

  • @Георгий-ь6с
    @Георгий-ь6с Місяць тому

    Классно, как быстро, понятно и без воды!

  • @МаратГафиатуллин-н3п

    больше похоже как заполнять пул, а где использование

  • @MartinIden-hn7ld
    @MartinIden-hn7ld Місяць тому

    Нихуя я попал

  • @ustriza
    @ustriza 2 місяці тому

    Хочется надеяться, что данный программист не пишет код для прода.

  • @ustriza
    @ustriza 2 місяці тому

    delete name и вообще всё, что связано с памятью, это жесть.

  • @АлександрИванов-б9ю7м

    Отличный материал!

  • @АлексейХодыкин
    @АлексейХодыкин 2 місяці тому

    Станно что автомобиль умеет себя создавать)

  • @MathPTU
    @MathPTU 2 місяці тому

    выпуЩен

  • @oshastitko
    @oshastitko 3 місяці тому

    Зачем изначально объявлять интерфейс, а его потом реализовывать в абстрактном классе? Что мешает начать прямо с абстрактного класса?

  • @ДинаРоманова-щ5ш
    @ДинаРоманова-щ5ш 3 місяці тому

    А не удобнее ли будет реализовывать всё это не через поля и методы, а через свойства? Результат выйдет тот же, но код будет лаконичнее в обращении.

  • @tutobab
    @tutobab 3 місяці тому

    проанализировав можно понять как работает... Дак что именно "мост" - не сказано, пальцем не показано. 2 иерархии классов связанные друг с другом, а где мост то?

  • @JustPlayingBroGD
    @JustPlayingBroGD 4 місяці тому

    Очень доступно и понятно, спасибо )

  • @АртёмМиков-т1з
    @АртёмМиков-т1з 4 місяці тому

    Блокировка нужна, иначе при создании может быть несколько экземпляров класса

  • @ЕленаСтепанова-т9б
    @ЕленаСтепанова-т9б 4 місяці тому

    #include <iostream> #include <string> #include <memory> class DataBaseHelper final { private: static std::unique_ptr<DataBaseHelper> data_base_connection; std::string data; private: DataBaseHelper() { std::cout << "Подключение к БД" << std::endl; } public: DataBaseHelper(const DataBaseHelper&) = delete; DataBaseHelper& operator=(const DataBaseHelper&) = delete; static DataBaseHelper* get_connection() { if(!data_base_connection) { data_base_connection = std::unique_ptr<DataBaseHelper>(new DataBaseHelper()); } return data_base_connection.get(); } std::string select_data() { return data; } void insert_data(const std::string& d) { data = d; std::cout << "Новые данные: " << data << " внесены в БД" << std::endl; } }; std::unique_ptr<DataBaseHelper> DataBaseHelper::data_base_connection = nullptr; int main() { const auto connection = DataBaseHelper::get_connection(); connection->insert_data("123"); std::cout << connection->select_data() << std::endl; return 0; }

  • @IgorChistruga
    @IgorChistruga 4 місяці тому

    кратко сухо и с примером - спасибо! Идеально было бы выложить исходник

  • @ArchDevWorkshop
    @ArchDevWorkshop 5 місяців тому

    К сожалению вообще ни о чем объяснение. Почти 10 минут что-то кодишь а толку?

  • @nikitakuznetcov8933
    @nikitakuznetcov8933 6 місяців тому

    вроде как этот паттерн еще называют "приспособленец"

  • @BlackRattata
    @BlackRattata 6 місяців тому

    А в чём проблема через темплейты такой функционал реализовать? Решение через темплейты выглядит как-то более лаконично

  • @fogfogi
    @fogfogi 7 місяців тому

    Спасибо Вам большое.

  • @denkir1977
    @denkir1977 8 місяців тому

    Наверное дискретизация будет Sampling(), а не Simpling(). За материал спасибо!

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 8 місяців тому

    И в этом весь смысл фасада?.. внедрение а ля композиция в качестве реализации клиентского класса… не зря говорил кто-то, что фасад - это если у вас с архитектурой совсем беда, х.рачь все в годобжект, пусть клиент управляет через одну точку входа… не представляю, где в здравом уме можно это все винтить…

  • @captainkryuk1899
    @captainkryuk1899 8 місяців тому

    Красава, очень круто

  • @РекфилдКрис
    @РекфилдКрис 8 місяців тому

    Спасибо, ты крут) Могу лишь добавить, что с рефлексией можно легко обойти ограничения данного паттерна =) Но зачем?)

  • @DadundddaD
    @DadundddaD 8 місяців тому

    Отличное видео, только звук фонит.

  • @shejin_2371
    @shejin_2371 8 місяців тому

    Самый понятный паттерн, как по мне. При чём он как сам по себе понятный, так и понятно где и как его стоио применять.

  • @nikolayz3347
    @nikolayz3347 9 місяців тому

    Можно еще unique_ptr использовать вместо *.

  • @Alex89muller
    @Alex89muller 9 місяців тому

    Что вы как роботы говорите-то без понятных объяснений. Нафиг такие ролики то нужны

  • @deimos56
    @deimos56 9 місяців тому

    шапка канала так и говорит: "You shall die"

  • @VoimiX2008
    @VoimiX2008 10 місяців тому

    Минус за гнусавый голос бота

  • @aleksanderm1947
    @aleksanderm1947 10 місяців тому

    И нахуй оно нужно?

  • @GOoD-vd5et
    @GOoD-vd5et 10 місяців тому

    Подскажите, а зачем в IVisitor указывать метакласс ABCMeta, а не просто указать ABC?

  • @VladV-j1n
    @VladV-j1n 10 місяців тому

    спасибо за видео, помогло и на удивление очень мало видео с прикладными примерами на С++

  • @Igor-infi
    @Igor-infi 10 місяців тому

    Полное дерьмо!! из примеров вообще не понятно нахрена так заморачиваться? А что будет, если если передать японский двигатель в российский авто.

    • @megawatt_140
      @megawatt_140 7 місяців тому

      Вот именно. Зачем указывать абстрактную аннотацию классу который выпускает определенный вид двигателей. Получается это подразумевает то что этот метод допускает все двигатели всех марок? Но зачем?

  • @daniilivanik5021
    @daniilivanik5021 10 місяців тому

    Тут не будет утечки памяти из-за того, что в IDeveloper необъявлен деструктор виртуальный?

  • @mrshark6765
    @mrshark6765 10 місяців тому

    Спасибо большое! :)

  • @daniilkoroliov2355
    @daniilkoroliov2355 11 місяців тому

    Хотелось бы добавить специальный метод __del__(self), который будет возвращать свойство __db_connection к None при удалении экземпляра

  • @FeelUs
    @FeelUs 11 місяців тому

    Зачем функции засовывать в классы? Почему бы в ResourceReader не передавать сами функции?

  • @alexlem3597
    @alexlem3597 11 місяців тому

    Хорошие видео. еще бы с утечками что-то делал и вообще супер было бы.

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 11 місяців тому

    В «интерфейсах» лучше реализовывать выброс not implemented error… имхо… тогда разрабы, забывшие реализовать поведение этого интерфейса, будут сразу получать exception

    • @captainkryuk1899
      @captainkryuk1899 7 місяців тому

      достаточно будет наследоваться от abc.ABC и в методах использовать декоратор @abstractmethod

    • @КириллЧе-я5ы
      @КириллЧе-я5ы 7 місяців тому

      @@captainkryuk1899можно и так…🥴

  • @fluke_8431
    @fluke_8431 Рік тому

    в чем отличие от паттерна фабричный метод?

    • @best_coozy_dad
      @best_coozy_dad 3 місяці тому

      Фабричный метод подходит, когда нужно дать подклассам возможность контролировать создание одного типа объекта. Абстрактная фабрика используется, когда нужно создавать семейства связанных объектов, которые должны работать вместе и быть взаимозаменяемыми.

  • @romabulava899
    @romabulava899 Рік тому

    пушка ничего лишнего на пальцах

  • @high-level-content-maker
    @high-level-content-maker Рік тому

    Проблема 99% подобных обучающих материалов в том, что демонстрация применения паттерна осуществляется в искусственном окружении, на искусственном примере. Суть паттерна поймет любая обезьяна, а написать примитивный код сможет даже шимпанзе. Где наглядно можно продемонстрировать неправильную работу функционала и правильную (паттерн) это в геймдеве. А если не в геймдеве, то среднестатистический интерн (джун?) не сможет понять куда как и когда это паттерн засовывать, так как у него нет опыта в проектировании сложных систем где такие паттерны могут применяться.

  • @rayankrimmer2611
    @rayankrimmer2611 Рік тому

    А если потребуется удалить условный hamming, а всё остальное оставить, то как это сделать?

  • @Roman-s9w
    @Roman-s9w Рік тому

    +++

  • @fantastiw
    @fantastiw Рік тому

    Переменные kg и lb создаются на стеке, а не выделяются динамически с помощью new, поэтому вызывать на них delete - ошибка.