Шаблоны Java. Prototype (Прототип)

Поделиться
HTML-код
  • Опубликовано: 5 окт 2024

Комментарии • 27

  • @manreaper1238
    @manreaper1238 3 года назад +14

    с дженериком в copyable можно было бы и сразу позвращать Project, вместо Object

  • @Denis_V_S
    @Denis_V_S 2 года назад

    Евгений, замечательно объясняете. Благодарю.

  • @igoraleksandrovich1498
    @igoraleksandrovich1498 3 года назад +6

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

    • @kcheban
      @kcheban 3 года назад +1

      Во многих случаях клиентский код, создающий копии объекта, работает только с интерфейсом объекта. Потому конструкторы ему недоступны. И выбор у него - либо фабрика, либо прототип

  • @andriikompaniiets4043
    @andriikompaniiets4043 4 года назад +1

    Спасибо. Хорошее видео.

  • @azerphoenix
    @azerphoenix 3 года назад

    Спасибо за видео. Интересная реализация данного паттерна. По идее данная реализация похожа на пример реализации при помощи конструктора, но в данном случае метод copy() создает копию объекта. Также отмечу, что можно реализовать данный паттерн используя сериализацию объекта.

  • @Andrzej3935
    @Andrzej3935 2 года назад

    Спасибо!

  • @duoduoo6732
    @duoduoo6732 2 года назад +1

    ничего не понятно но очень инетересно

  • @anastasiapryakhina7151
    @anastasiapryakhina7151 7 лет назад +1

    не понимаю, а где классы, экземпляры которых нужно создать определяются во время использования программы?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Добрый день, Анастасия - не совсем понятен вопрос.
      Не могли бы вы уточнить, пожалуйста.

  • @Chekist2008
    @Chekist2008 4 года назад

    Метод в фабрике setPeoject() оказался лишним?

  • @andriikompaniiets4043
    @andriikompaniiets4043 4 года назад +1

    Я так понимаю, что если через clone делать, то не будет фабрики. А почему обязательно надо, чтобы класс имплементил интерфейс Cloneable, иначе переопределенный метод clone будет исключение выбрасывать при кастовании?

    • @azerphoenix
      @azerphoenix 3 года назад +2

      При имплементации интерфейса Clonable и реализации метода clone() создается неполная копия объекта (shallow copy), а при такой реализации или при других реализациях данного паттерная создается полная копия (deep copy)

  • @ErmalayKa
    @ErmalayKa 7 лет назад

    А что за UML вы используете? Подскажите - мне понравились диаграммы.

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад +1

      Добрый день.
      Для Idea Ultimate - это стандартный плагин.
      Не входит в Community Edition.

    • @ErmalayKa
      @ErmalayKa 7 лет назад

      А для Android Studio можете что-нибудь посоветовать кроме SimpleUMLCE?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 лет назад

      Не работал с Android - подсказать не смогу.

  • @yevheniikozhevin5845
    @yevheniikozhevin5845 5 лет назад +1

    А зачем создавать интерфейс копибал, если в жаве уже существует метод клон у класса обжект и интерфейс клонабл созданные как раз для этих целей? И в случае использование того что я написал будет достаточно в переопределенном методе клон написать super.clone() с отлавливанием исключения. этого будет достаточно если все поля неизменяемые. в противном случае книга эффективное программирование глава 3.4

    • @EugeneSuleimanov
      @EugeneSuleimanov  5 лет назад +4

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

    • @sergeyzakharchenko1706
      @sergeyzakharchenko1706 4 года назад

      странно кстати что вы незнаете простого факта что клонирование обьекта даже через переопределенный метод clone() является ужасной практикой. для этого используются конструктор.

    • @cyrillcheckout
      @cyrillcheckout 3 года назад +1

      @@sergeyzakharchenko1706 можно узнать обоснование "ужасной" практики? в чем непосредственно очевидные минусы? И какие плюсы копирования объекта через конструктор?

    • @igoraleksandrovich1498
      @igoraleksandrovich1498 3 года назад

      Потому что этот способ больше официально не рекомендуется из-за возможных проблем.

    • @cyrillcheckout
      @cyrillcheckout 3 года назад +2

      @@igoraleksandrovich1498 вы такой лапочка, мое почтение :-) "Официальный источник" - смешно, честно.

  • @Ilya_yarets
    @Ilya_yarets 4 года назад

    добавьте описание

    • @кейк-щ2и
      @кейк-щ2и 3 года назад

      А зачем здесь описание если по названию видео понятно ,что здесь будет.