Factory, Abstract Factory, Factory Method - Design Pattern (C#)
HTML-код
- Опубликовано: 21 сен 2024
- Explanation & Examples for the Factory, Abstract Factory and Factory Method design patterns.
Patreon 🤝 / raw_coding
Courses 📚 learning.raw-c...
Shop 🛒 shop.raw-codin...
Discord 💬 / discord
Twitter 📣 / anton_t0shik
Twitch 🎥 / raw_coding
👉 Try Rider
www.jetbrains....
RD5K9-4TXXW-KMV3G-NYWSF-3ZSTP
Playlist: • c# design patterns
Source: github.com/raw...
#csharp #designpattern #factory
Hi @Raw Coding, at 4:29 you say "this concept is also known as Dependency Inversion" but wouldn't the concept actually be "Inversion of Control (IoC)"? This last one by means of "Dependency Inyection" of the factory. Because if I understand correctly "Dependency Inversion" would be the "D" of SOLID principles and the intent is different, which in the later case would be decoupling. Am I right? Regards
You are correct, thank you for letting me know I wasn’t aware of the fine grained difference between DI, DIP and IoC. I always bunched them up together.
martinfowler.com/articles/dipInTheWild.html#HowDidIGetHere
try no to stick to bla-bla terminology.
@@RawCoding Thank you very much. Long search ended here....so much of wrong info out there in this regard.
Very simple demo and i love it when you explain when/where to use this pattern. Thank you and appreciated! 💙
Cheers! Make sure to check out the playlist
Thank you so much... 9 mins.. and I learned it. I have seen many long videos. But nothing compared to this..
Bro, the series of videos explained design pattern the easiest way, thank you so much
Glad you enjoyed them bro )
The best explaning, I've ever seen. Thanks!
Cheers
Are you a psychic?
Yesterday I was looking for more information on abstract factory pattern.
YESTERDAY! Less than 12 hours ago!
Anyway, thank you and greetings from Brazil! ^_-
Life is funny
@@RawCoding This Happen to me a lot 😂😂😂😂😂
Liked your background, not distracting at all ;-)
Yohoo... I'm going to love this play list😍😍
Hope so!
Hey man! I really appreciate your channel and the way you explain the concepts. I hope everything is ok with you. Your last video was one year ago. Big hugs!
Cheers my dud all is good, I still upload videos
Amazing ! You are an outstanding developer.
Cheers
Books I'm holding at the end (thinking that ending clip might get boring quickly)
.NET Pro Memory Management
Design Patterns (GoF)
Structure and Interpretation of Computer Programs
The Joy of Clojure
Thank you ! Finally Design pattern started,
Hope you enjoy
i have passed this situation where i have to generate form controls from backend and am using factory pattern for it
its very good for this use case
thanks for confirming it Anton
Thank you for watching
thank you for the simple explanation :]
Thank you for watching )
Beautiful explanation, just Beautiful❤. Thank You👏
Could you please make series about Domain-Driven-Design. And how a project would scale and look like when applying this practice?
Don’t really do DDD
@@RawCoding are you a functional guy rather than ood maniac?
Yes, I prefer functions )
@@RawCoding i kinda sense that
Maybe later discuss that too
I try to be more functional so any hints are appreciated
Learn Clojure
Yes! Thank you mate
No thank you!
Did you bought your microphone second-hand? The sound is always very low.
Nope, I’m just shit at using it
@@RawCoding I'm sorry to hear that
Surprised you can hear it, my audio is shit
I really liked that but painting 😁😋
Talk more about that
My girlfriend drew it.
I am only doing these programming tutorials to accumulate value on the butt painting and sell it for millions after many years, when I and the painting is famous!
@@RawCoding #respect
I bid the first
It won't work.
Constructors do not return objects, but init fields of the current one. It is also impossible to reassign "this".
In your case, there is just an output to the console, which does not mean that an object of the correct type has been created and returned.
It was created and immediately destroyed.
Without the lambda, the constructor code looks like this:
public class DropDownMenu{
public DropDownMenu(IFactory factory)
{
_ = factory.CreateButton();
}
}
No clue what you’re talking about
@@RawCoding I mean that the created objects are not saved anywhere. Or is the initialization of the internal fields of the DropDownMenu omitted on purpose so as not to complicate the example? This makes it harder to understand the idea of the pattern.
I’m explaining re usability of an object creation process. Showing how to then use the object is a waste of time.
Nice description
I see you like to torcher yourself with the painting on the wall. I’m referring to the very one on top.
Hahahahaha
Thank you !
This is amazing !
Thank you )
Thanks for such good videos
Thank you for watching
Cool!
Hope so!
It's evident you enjoy the complexity involved lol
What complexity? This is simple no?
Implementation - simple
Thinking - complex, but can be simple with time
Why is thinking complex?
Thinking is not complex. Proper application of thoughts can be complicated because there are different approaches to things.
He makes a change and then moves the screen so that you don't get a chance to study the change, for example around 6:42. It's too fast to even pause there. Also, he doesn't show enough code in the same screen so I can't see how one thing affects the other. Quickly moving around, distracting hand gestures, imprecise definitions, etc.
Maybe I'm just dumb
Hi bro, can you tell me the books you showed and/or books you recommend? Thx :) (Design pattern playlist lets gooo)
Holding:
.NET Pro Memory Management
Design Patterns (GoF)
Structure and Interpretation of Computer Programs
The Joy of Clojure
Recommend:
Clojure for the Brave and True (read it before The Joy of Clojure)
Out of the Tar Pit github.com/papers-we-love/papers-we-love/blob/master/design/out-of-the-tar-pit.pdf
Bob Martins (Uncle Bob) books really good for beginners
@@RawCoding amazing, gonna take a look! thx you
Seems Abstract Factory > Factory Method ;)
I’d agree
Why dont you use visual studio ?...i'm confuse what a Dump keyword for...
This is LinqPad, and dump prints object on to the screen. I dont like visual studio
@@RawCoding ohhh i see...i hope you'll switch to Visual studio some day..cause i have to think twice while you use linq pad...😄😄😄
Yeee that won’t be happening
@@RawCoding might I suggest Jetbrains Rider?
What is that?
Is a deserializer not also a type of factory?
It is
Can you make a video on event sourcing and how to store event in real word. This will complement your mediatr tutorial
Probably not, but I’ll see what I can do
Hi, any chance you can share the book list? Much appreciated 👍
I'll pin the comment
Hi, do you have text version of video?
Hi nope
@@RawCoding Ok, I'll read about it in some other place. Video is cool anyway)
Have u ever used the command pattern?
If I did not consciously
@@RawCoding we use it where I work to interface with the domain level hardware functions. You plug generic commands into queues and lists and you can execute them in parrelell or in series and keep track on their errors and handle logging in a generic way. You could even use it to undo/redo events. It works well for our kind of stuff were we have multiple versions of the hardware sequences for different client applications. Also it makes fixing defects and changing behaviour really easily and it’s all plug and play.
Reminds me of some of things I’ve done, my approach is more functional where I just pass a function with some closures, which in turn becomes the command object.
@@RawCoding could do yeah. The class is more of a way to encapsulate a recovery command, a regular command, an undo and some error handling stuff. Sounds like a good approach tho especially if you’re just concerned about passing around the single function
I see, thanks for telling me, I’ll be reading more in to it when I’ll come to covering it