Design Patterns - Factory Method Pattern Explanation and Implementation in C++
Вставка
- Опубліковано 8 лип 2024
- ►Software Design and Design Patterns Playlist: • C++ Software Design an...
►Find full courses on: courses.mshah.io/
►Join as Member to Support the channel: / @mikeshah
►Git Repo: github.com/MikeShah/DesignPat...
►Lesson Description: In this lesson I teach you about a creational design pattern to have a single point in which you allocate objects at run-time. This is the factory method (or factory function), which takes advantage of inheritance based polymorphism to create the correct object at run-time and return it to the user.
00:00 Factory method and definition
1:25 Goal of the factory method pattern
2:37 Inheritance based polymorphism
3:40 Start of implementation with interface
4:50 Creating derived classes
5:58 Creation of our factory
9:15 Confirming the factory works in GDB
10:50 Refactoring our factory arguments with enum class
14:35 Returning a smart pointer from our factory
16:12 Confirming no memory leaks with valgrind
17:30 Recap of source code and pattern
18:00 Pros and cons of the pattern
►UA-cam Channel: / mikeshah
►Please like and subscribe to help the channel!
►Join our free community: courses.mshah.io/communities/... - Наука та технологія
Your video is probably one of the best I have found in how to use design patterns in C++. It is really clear, and the fact that you show in real time what you are doing really helps follow the content.
Thank you for the kind words!
Thank you for explaining these patterns so clearly and for keeping it simple. Other sources I tried made them seem very complicated and I almost gave up.. thankfully I came across your channel! I can't thank you enough.
Cheers! More coming to this series tomorrow 🙂
amazing. I'm so lucky to have the chance to watch your videos!!!!!
Thank you for the kind words!
Man i just got the understanding of Factory Design pattern after watching it so easily
Thanks a lot 🙏
Cheers, glad to hear it!
Absolutely loved your teaching style! 🙌 Thanks for the cool tip: --tui
Understood fully..loved this :)
Cheers!
amazing as always = thank you so much Dr. Mike
Cheers!
info vtbl was really cool. thank you.
You are most welcome!
_thank you thank you thank you_ for the clear explanation
Cheers!
thanks a lot for this explanation
Cheers, you are most welcome
Great video!
Cheers!
Quality content
Cheers, thank you for the kind words!
Thanks for the clear explanation and great content. According to refactoring guru, the design pattern "factory method" would have a creator, concrete creators, product, and concrete products. In the example you provided, MakeGameObjectFactory seems to be an object creation function that abstracts away the object creation process and provides an easier way to create objects. I'm wondering if this is a simplified variation of the factory method, or if this still aligns well with the standard factory method? Thanks.
Cheers -- yes this is an example of a factory method.
Curious, Is there any reason to use shared_ptr? in general, by default people use unique_ptr.
Correct, unique_ptr should be the default that folks reach for. shared_ptr is appropriate if your object is referenced multiple times -- which is what I was thinking about in a gaming context :)
Does this pattern have to use heap allocation to work
You could make stack allocations or otherwise use a custom allocator to decide where to allocate your new objects. I suppose this depends on the requirements of your design and how much stack space you have. Heap memory (at least on desktops) we have much more memory :)
Can we keep factory method as static class method and keep class constructor private? so only from factory method we can create instance of class.
You can create a factory as a singleton if that is what you're asking -- sure!