The Flyweight Pattern Explained and Implemented in Java | Structural Design Patterns | Geekific

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 มิ.ย. 2024
  • Support us on Patreon: / geekific
    GitHub Repository: github.com/geekific-official/...
    Stay updated on our videos by subscribing to the channel and hitting the like button!
    Today, we add another Structural design pattern to our Design Patterns in Java series: The Flyweight Design Pattern.
    Timestamps:
    00:00 Introduction
    00:07 What is the Flyweight Pattern?
    02:05 Flyweight Pattern Implementation
    04:58 The Flyweight Pattern Class Diagram
    06:22 Recap
    06:52 Thanks for Watching!
    If you found this video helpful, check other Geekific uploads:
    - Introduction to Design Patterns: • What are Design Patter...
    - UML Class and Object Diagrams: • UML Class and Object D...
    - SOLID Principles and Best Practices: • SOLID Design Principle...
    - Object-Oriented Programming Fundamentals: • What is Object-Oriente...
    - Recursion Made Simple, Recursive Methods: • What is Recursion? | R...
    - The Factory Method Pattern Explained and Implemented in Java: • The Factory Method Pat...
    - New Features introduced in Java 17: • New Features in Java 1...
    #Geekific #DesignPatterns #FlyweightPattern #StructuralPatterns

ความคิดเห็น • 33

  • @alooooshm
    @alooooshm 2 ปีที่แล้ว +24

    Dude in 7mins you are delivering more value than that delivered in a 3-hour lecture...! Thx

    • @geekific
      @geekific  2 ปีที่แล้ว

      Thank you! This means a lot :)

    • @mishaaskar
      @mishaaskar 2 หลายเดือนก่อน

      @@geekific funny enough my OOP class in uni pretty much copied this playlist word by word for any explenation about design patterns

  • @nicholastreurnicht
    @nicholastreurnicht 4 วันที่ผ่านมา

    UNISA COS2614 students should be watching these videos. Very useful man

  • @RyanJones-qo2hn
    @RyanJones-qo2hn 2 ปีที่แล้ว +9

    This video is amazing. What I really appreciate is your ability to articulate WHY we would use this pattern. As a beginning computer programmer, this is helping me properly contextualize the content to make it more "sticky" in my head. Thank you so much for sharing your knowledge with the world!

    • @geekific
      @geekific  2 ปีที่แล้ว +2

      When I was in your shoes I had the same struggles :) and while making the videos I try to answer: "I wish someone explained to me this and that at the time...". Am so glad the videos are helping you! Cheers!

  • @ThanhNguyen-qk2zb
    @ThanhNguyen-qk2zb ปีที่แล้ว

    Very nice and clear video for me. Thank you very much, sir! I can now understand this pattern in 7mins

  • @harveynorman8787
    @harveynorman8787 9 หลายเดือนก่อน

    This is a very good explanation of flyweight. Thumbs up

  • @Sarah-zo2ys
    @Sarah-zo2ys 2 ปีที่แล้ว

    This was very easy to understand, thank you!!!
    😁

    • @geekific
      @geekific  ปีที่แล้ว

      I'm so glad it was :)

  • @nadavshemesh1231
    @nadavshemesh1231 7 หลายเดือนก่อน

    I don't know if its intentional or not, but the style of these videos is similar to the Portal 2 aperture science instructional parts (even the voice resembles the voice acting in Portal Stories: Mel).
    Regardless, I LOVE this style! Thank you.

  • @freeopensource
    @freeopensource 2 ปีที่แล้ว +1

    This one was good. Thanks for helping me out !!
    Also explaining on slides with code example helps understand betterr (which this one was) rather typing in real time and swithching multiple screen.

    • @geekific
      @geekific  2 ปีที่แล้ว

      Thank you! Happy it helped :)

  • @michaelgoppelt3326
    @michaelgoppelt3326 2 ปีที่แล้ว

    Great content. You deserve more followers

    • @geekific
      @geekific  2 ปีที่แล้ว +1

      I appreciate that! Glad you liked it :)

  • @ricardovidal6550
    @ricardovidal6550 ปีที่แล้ว

    Perfect

  • @kaanefe4266
    @kaanefe4266 3 หลายเดือนก่อน

    God bless you!

  • @mirageman2
    @mirageman2 ปีที่แล้ว

    Hi, this is the best flyweight explanation i could find on youtube (the other ones were horrible to be honest).

    • @geekific
      @geekific  ปีที่แล้ว

      Glad it was helpful!

  • @ekathe85
    @ekathe85 ปีที่แล้ว

    Nice and very clear! Just one question... does the flyweight pattern contemplate any particular sort of data structure when storing already created flyweights, something like a recursive tree?

    • @geekific
      @geekific  ปีที่แล้ว +1

      Happy to be of help! It depends on your use-case, however, Maps are the most popular because of the ability to retrieve an object in constant time by value :)

  • @elmatador5459
    @elmatador5459 ปีที่แล้ว +1

    Hey ! Great explanations, thanks !
    In the bookfactory, why do you only compare the type and not all the intrinsic values? If I understand correctly, there will be only once the type "action" and once the type "Fantasy" without caring about the different distributors and otherdatas.
    Thanks for your answer.

    • @geekific
      @geekific  ปีที่แล้ว +1

      A better name for it would be BookTypeFactory I guess! Sorry for the confusion :) And we are doing that because the attributes stored inside the Type are what is being repeated between books, the others may vary. Hope this helps!

    • @elmatador5459
      @elmatador5459 ปีที่แล้ว

      @@geekific Thank you for your answer and especially the quality of your video !

  • @yotamarker
    @yotamarker 6 หลายเดือนก่อน

    please do a video about the livingrimoire AGI software design pattern

  • @atharv9924
    @atharv9924 ปีที่แล้ว

    I thought I understood from the video but when I saw your implementation code in github it doesn't match to the class diagram in video. This leads to more confusion. For example there is no 'Store' class in video and in 'Book' and 'BookType' class there are no methods as shown in video, could you please explain? Also, 'BookType' which is in 'BookFactory' class but not imported, not sure how the code even compiled in the first place?
    Though appreciate your efforts to explain the concept easily! Thanks.

    • @geekific
      @geekific  ปีที่แล้ว

      Glad I could help!
      - There is a store class in the GitHub repo plz have another look...
      - There are no methods in the Book and BookType classes in the video as well...
      - No need to import it because they are in the same package...
      Cheers!

    • @atharv9924
      @atharv9924 ปีที่แล้ว

      @@geekific Thanks for the response. Let me frame questions well:
      - What does the 'Store' class represents in classdiagram?
      - Aren't the 'context' and 'operation' the methods in Book and BookType classes as shown in classdiagram?

  • @mishaaskar
    @mishaaskar 3 หลายเดือนก่อน

    did i just hear cache being pronounced cashue? 3:53

  • @linuxshell8804
    @linuxshell8804 26 วันที่ผ่านมา

    Cashé

  • @sidekick3rida
    @sidekick3rida ปีที่แล้ว

    Thanks! Although, Java is one of the worst languages, especially for explaining computer science concepts.

    • @geekific
      @geekific  ปีที่แล้ว +1

      Glad I could help! Java is very verbose, that is why I actually find it easier to teach stuff with it!