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
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! ^_-
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
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
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!
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
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(); } }
@@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.
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 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
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.
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..
The best explaning, I've ever seen. Thanks!
Cheers
Bro, the series of videos explained design pattern the easiest way, thank you so much
Glad you enjoyed them bro )
Amazing ! You are an outstanding developer.
Cheers
Thank you ! Finally Design pattern started,
Hope you enjoy
Yohoo... I'm going to love this play list😍😍
Hope so!
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 😂😂😂😂😂
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
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 for the simple explanation :]
Thank you for watching )
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
Beautiful explanation, just Beautiful❤. Thank You👏
Yes! Thank you mate
No 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
This is amazing !
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
Liked your background, not distracting at all ;-)
Thank you !
Is a deserializer not also a type of factory?
It is
Thanks for such good videos
Thank you for watching
Nice description
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)
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?
Hi, any chance you can share the book list? Much appreciated 👍
I'll pin the comment
Cool!
Hope so!
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
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.
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
I see you like to torcher yourself with the painting on the wall. I’m referring to the very one on top.
Hahahahaha
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.
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
Seems Abstract Factory > Factory Method ;)
I’d agree
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
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