No video

How does Builder Design Pattern solves problems like URL creation?

  Рет қаралды 39,886

sudoCODE

sudoCODE

Күн бұрын

Learning system design is not a one time task. It requires regular effort and consistent curiosity to build large scale systems. Moreover, every system has different requirements and meeting them requires expertise and people with varied and specific knowledge. There are a lot of resources to learn through videos. But not everyone enjoys that mode of learning. Instead some people understand things better by reading and thinking on the points put forward by the author. Such people can access these in different ways - blogs, articles and books. We have come up with this video to put light on one such aspect, that is - Types of Design Patterns
Important links and resources:
✒ github.com/top...
✒ Quick summary: docs.google.co...
------------------------------------------------------------------
Recommendations
------------------------------------------------------------------
Our full courses on youtube:
✒ System Design Primer Course: • System Design Primer C...
✒ REST APIs made easy: • REST APIs MADE EASY
Some paid courses that we recommend:
✒Educative.io: bit.ly/3qnW5ku
✒Interviewready.io: get.interviewr... (Use coupon code SUDOCODE for extra discount)
------------------------------------------------------------------
About Us
------------------------------------------------------------------
Created and Instructed by:
Yogita Sharma
✒ LinkedIn - / yogita-sharma-83400b55
✒ Instagram - / sudo.code1
✒ Facebook - / sudo.code
✒ Medium - / yogita088
Post-production(editing, thumbnail etc) managed by:
CiKi
✒ Website: www.ciki.co.in
✒ LinkedIn: / 74735937
Colors and design by:
Naini Todi
✒ LinkedIn - / nainitodi
Both Arpit and Yogita are software engineers and want to help other software engineers become better by providing high quality and well researched content by adding their creativity and teaching twist.
------------------------------------------------------------------
Join Us
------------------------------------------------------------------
Hangout with sudoCode:
✒Discord Server: / discord
For business:
✒Email: sudocode.yogita@gmail.com
Timestamps:
0:00 - What will you learn?
0:34 - Problems solved by Builder Design Pattern
1:29 - Analogy
3:29 - Usability of Builder Design Pattern
4:05 - Implementation of Builder Design Pattern
4:53 - Code walk-through
10:11 - Summary
11:48 - Outro

Пікірлер: 70
@PiyushPragyan
@PiyushPragyan 2 жыл бұрын
Loved the design pattern series. I understood this in a single go. 😊
@HariShankar-yf8di
@HariShankar-yf8di Жыл бұрын
Superb lecture. I saw 2-3 other youtube channels for understanding builder patterns. Many tried but were not clear due to bad examples, difficult code walkthrough. What separated this video from Yogita is that she explained the painful areas of non-builder pattern based examples, she explained a technical jargon of constructor telescoping, the examples made great sense, two example codes to make the understanding crystal clear. @Yogita Thank you so much
@sumitguptasg1
@sumitguptasg1 Жыл бұрын
I saw a couple of videos for builder patterns but this is really crisp and useful. Great, keep 'em coming.
@AshutoshSingh-mh7qm
@AshutoshSingh-mh7qm 2 ай бұрын
what a nice value addition to my engineering life. I am enjoying watching the design pattern playlist. It's above par comparing to any paid courses. Thanks a lot ....
@rein29233
@rein29233 6 ай бұрын
Finally in forever i understood this concept!!
@shubhamrajput37
@shubhamrajput37 7 ай бұрын
This is the best explanation I have ever went across for Builder Pattern. Thanks a lot for your work, really grateful to you !!
@letsdosomething3333
@letsdosomething3333 8 ай бұрын
Mam your way of teaching is just so amazing..it gives an extra view to see the code and to understand the code in easiest way.grateful that i found you
@narenshalivahana1111
@narenshalivahana1111 11 ай бұрын
superb example and explanation, understood in few minutes
@sekharsamanta6266
@sekharsamanta6266 5 ай бұрын
Best ever video I've seen so far on design pattern
@jokhakararpan31
@jokhakararpan31 Жыл бұрын
Hey Yogita, You have explained this in very simple way, with practical example. Really liked your work.
@aviator9728
@aviator9728 2 жыл бұрын
Best series on design patterns please complete rest as well
@aakansha5889
@aakansha5889 2 жыл бұрын
One of the best explanation on builder design pattern!!
@letsrock7354
@letsrock7354 Жыл бұрын
In office I was writing code this way all along...just by following/understanding already written code... Never knew I was utlising Builder pattern
@AditiAgarwal1695
@AditiAgarwal1695 Жыл бұрын
Such a crisp and easy-to-follow video. Thanks for making this... :)
@hbhatia999
@hbhatia999 2 жыл бұрын
Refactoring has become very easy in this pattern with some cons to use according to usecase. Thanks for video.
@ankushvashisht1158
@ankushvashisht1158 9 ай бұрын
Wow!! You are such a good teacher.
@sumantkumar2887
@sumantkumar2887 Жыл бұрын
Very simple and easy to understand , thank you for the design patterns series.😊
@blitzc8146
@blitzc8146 5 ай бұрын
Beautifully explained! Subbed, Thank you!
@shriharikulkarni07
@shriharikulkarni07 Жыл бұрын
Thanks for the wonderful and easy explanation
@democratcobra
@democratcobra 2 жыл бұрын
Thanks for the upload ..Great....Please Complete all Design Patterns.. 🙂🙂
@zeeshanalam4914
@zeeshanalam4914 Жыл бұрын
Clear and precise!
@annabelleellis8098
@annabelleellis8098 Жыл бұрын
Awesome Explanation!! Great example use.
@mireazma
@mireazma Жыл бұрын
It's worth mentioning that C++ and C# (at least) simplifies all the charade to nothing by use of optional parameters.
@sakshamjain16
@sakshamjain16 Жыл бұрын
It does. But builder pattern is worth to use when each component creation is complex.
@prabhagaikwad4849
@prabhagaikwad4849 Жыл бұрын
Loving whatever content you are creating. Most easiest ways you try. Much appreciated. Thank you so much _/\_ _/\_
@shreysoni2054
@shreysoni2054 2 жыл бұрын
This is really a very good video, thank you mam for creating such good videos.
@mickys4999
@mickys4999 Ай бұрын
I didnt understand one thing in builder pattern. What if we need to add another attribute to the static builder class like price? Do we need to modify the static class? How will we implement it?
@tenshin111
@tenshin111 5 ай бұрын
This is a good introduction into the Builder pattern but it misses a few things. How about making sure that required fields are actually enforced in the code? Right now nothing is stopping you from building the URL that contains only 'path' and 'query' parameters but is missing the protocol/hostname part.
@aaf2011
@aaf2011 Жыл бұрын
Thank you for your efforts to deliver such great explanation and helping us understanding the weird parts about design patters however, I do have a question mark about using nested class why we had to use nested class instead of using sole abstraction builder class or interfaces?
@davidstigant457
@davidstigant457 2 ай бұрын
I have the same question.
@RahulVerma-fz2jf
@RahulVerma-fz2jf Жыл бұрын
Hey Yogita. Huge fan of your video, crisp and easy to understand. For this (builder pattern) implementation, saw some other sites as well, seems like 1. using inner nested class is not the only to implement it. People are using combination of (interface and abstract classes to achieve the same). 2. In your implementation isn't the code duplicated, as in the UrlBuilder and Builder class, you are writing the same fields again. Looks a bit messy. Dont you think?
@gauravsalunke8652
@gauravsalunke8652 Жыл бұрын
Thanks for easy explanation
@prashantchamoli7263
@prashantchamoli7263 Жыл бұрын
Thanks! I just have one question. Why use inner static class here? Why can't we have those constructors directly in URLBuilder instead and chain individual constructors that return type URLBuilder?
@PkSam07
@PkSam07 11 ай бұрын
Yes, I too tried so and it worked. Just fields and then field method which return object itself. Moreover, I removed final from fields and then created getter and setters as well to make it un-immutable. I don't see any issue? You found any ans?
@ISHANICUTIEPIE
@ISHANICUTIEPIE Жыл бұрын
Superb Explanation..
@SoumikGhosh-ef1jn
@SoumikGhosh-ef1jn 2 ай бұрын
It would be very helpful if we could get the code for the same as it helps in grasping the concept even better.
@prakashbabugnanam7949
@prakashbabugnanam7949 2 жыл бұрын
Very eazy to understand and simple & clean example. Loved it!!
@manishdadheech8440
@manishdadheech8440 Жыл бұрын
Thanks for such a nice explanation. I have a doubt. Why are we using a static inner class in the builder design pattern? Can't we use a normal inner class? or can we do it without inner class?
@abhishekrathour3137
@abhishekrathour3137 Жыл бұрын
Hi, why can't we use default constructor along with setters to set the value of field instead of making constructor for every param
@user-fg2iw4yi7q
@user-fg2iw4yi7q 8 ай бұрын
Great Video
@mdnadeemasgar6279
@mdnadeemasgar6279 Жыл бұрын
Hi Yogita, can you please upload the code online and share the code url in the description. So that we can also try manipulating the code for the given design pattern.
@PkSam07
@PkSam07 11 ай бұрын
What if we try to make it un-immutable. I removed final from fields and then created getter and setters as well to make it un-immutable. I don't see any issue. If any?
@ThePakChina
@ThePakChina Жыл бұрын
[1,2,3,4,5].map(d=>d*2).filter(d=>d
@yaad122
@yaad122 2 жыл бұрын
Thanks allot, I am learning a lot.
@ThePakChina
@ThePakChina Жыл бұрын
Very good. Keep it up.
@sudocode
@sudocode Жыл бұрын
Thanks a lot
@soumalyasahoo5184
@soumalyasahoo5184 Жыл бұрын
But at last after using builder design , the URL class is of no use? what i mean to say is , we should be able to print url.protocol , instead of urlBuilder.protocol.
@Adarshpartha
@Adarshpartha 2 жыл бұрын
Thank you for providing such good videos. I have a question how is builder pattern advantageous than just having default constructor without parameters and calling setter function to initialise attributes.
@aakansha5889
@aakansha5889 2 жыл бұрын
Firstly we want do not want to use the new keyword(which Factory pattern solves) and second we use builder pattern to make objects immutable.
@RohitChauhaniitr
@RohitChauhaniitr Жыл бұрын
One correction: builder.build() call should actually return the URL object instead of the builder object. This builder object is part of the URL object constructor such that the value set in the builder could be used to construct the URL object. Am I missing something ?
@PkSam07
@PkSam07 11 ай бұрын
​@francescovanspronsenyes, u can even rename the class UrlBuilder to just Url. In that case u ll get what u r looking.
@nitinkhulbe6234
@nitinkhulbe6234 Жыл бұрын
nicely explained
@TusharBorawake
@TusharBorawake Жыл бұрын
You have created object of static class Builder, which seems strange here... Same thing when I am trying to implement in typescript I am getting "Error"
@ashish261096
@ashish261096 Жыл бұрын
First of all thanks a lot for this series, learning a lot from it. I have one doubt, in build method we are hardcoding URLBuilder class. Can we somehow use factory pattern along with builder pattern to create the URLBuilder object? so that in future, if I need to create TinyURLBuilder or any other object I can do it with minimal changes
@joseph2073
@joseph2073 Жыл бұрын
Yes, u can implement multiple patterns together
@himankgupta7968
@himankgupta7968 2 жыл бұрын
Hi, wanted to know why can't we use default params in constructor as null to resolve unwanted fields in class in this case?
@sudocode
@sudocode 2 жыл бұрын
We can it makes the code cumbersome and lengthy for no reason.
@santosh_bhat
@santosh_bhat Жыл бұрын
Imagine you have 10+ params and you just need to create objects with 2-3 values set. You will have to write null in all unwanted params place. (extra work) Imagine you need to create multiple similar objects. (unwanted code, extra work) Builder pattern to the rescue
@rahulsrivastava1040
@rahulsrivastava1040 Жыл бұрын
Loved it
@mireazma
@mireazma Жыл бұрын
7:41 People probably wonder why create a new object based on an existing static object instead of only using one? In other words: Why going through the hassle of a static Builder, private constructor and _new_ in URLBuilder.build() instead of just populating the _new_ in Demo.main()? The answer is immutability. And although it's not needed in this particular example, it's a clever example to follow in other situations.
@tharunadhits6957
@tharunadhits6957 5 ай бұрын
Because we need to use encapsulation to hide complexity of the code and for isolation
@sathviksathish4243
@sathviksathish4243 7 ай бұрын
Easy peasy
@nathamuni9435
@nathamuni9435 Жыл бұрын
PLZZZ SHARE THIS PROJECT GIT LINK
@arpitkansal3785
@arpitkansal3785 Жыл бұрын
You did not explain why we can't use setters only? Yes, the code looks redundant but I would have liked some explanation over it. Moreover, @Builder annotations for classes allows its objects to be modified.
@PkSam07
@PkSam07 11 ай бұрын
Yes I used setters and getters and then removed the final as well to make it un-immutable and it does work. I didn't get what's the problem in doing so? If anyone please let me know?
@narindermalik7008
@narindermalik7008 10 ай бұрын
If there's no need of immutable object, then there are alternatives to builder. But immutability is a good thing specially in a threaded env.
@atirrasheedhashmi
@atirrasheedhashmi 2 жыл бұрын
Yeh transition bahut bakwas hai
@sudocode
@sudocode 2 жыл бұрын
I hope you find peace of mind and freedom from whatever is bothering you in life.
@virgiebert7389
@virgiebert7389 Жыл бұрын
𝐩𝓻Ỗ𝓂Ø𝓈M
The Joker saves Harley Quinn from drowning!#joker  #shorts
00:34
Untitled Joker
Рет қаралды 49 МЛН
Survive 100 Days In Nuclear Bunker, Win $500,000
32:21
MrBeast
Рет қаралды 147 МЛН
how Google writes gorgeous C++
7:40
Low Level Learning
Рет қаралды 846 М.
5 Design Patterns That Are ACTUALLY Used By Developers
9:27
Alex Hyett
Рет қаралды 244 М.
Master the Fluent Builder Design Pattern in C#
15:05
Milan Jovanović
Рет қаралды 25 М.
Design Patterns Master Class | All Design Patterns Covered
3:46:08
Daily Code Buffer
Рет қаралды 56 М.
Prototype Design Pattern in Java
18:30
Telusko
Рет қаралды 142 М.
Good APIs Vs Bad APIs: 7 Tips for API Design
5:48
ByteByteGo
Рет қаралды 227 М.
The Smart Way of Using the Decorator Pattern in C#
12:37
Nick Chapsas
Рет қаралды 67 М.