Adapter Design Pattern | Explanation with Code in Easy Way! ✌🏻

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ย. 2024
  • It’s beautiful to understand how such a common problem is handled so elegantly. Once you really understand, you realise you don’t need to mug up the class design. It will start coming naturally to you!
    You can get 𝐃𝐈𝐒𝐂𝐎𝐔𝐍𝐓𝐒 using code "KEERTI" -
    ➡️ On 𝐈𝐧𝐭𝐞𝐫𝐯𝐢𝐞𝐰𝐑𝐞𝐚𝐝𝐲 - get.interviewr...
    ➡️ On all 𝐆𝐞𝐞𝐤𝐬𝐅𝐨𝐫𝐆𝐞𝐞𝐤𝐬 paid courses - practice.geeks...
    Please 𝐬𝐮𝐛𝐬𝐜𝐫𝐢𝐛𝐞 here - / keertipurswani
    CFS Channel for beginners of DSA - / @codefromscratch-keert...
    Personal Content here - / @ittisikhushi-keertipu...
    You can also connect with me on-
    𝐈𝐧𝐬𝐭𝐚𝐠𝐫𝐚𝐦 (for not so professional, chill side of my life) - www.instagram....
    𝐓𝐰𝐢𝐭𝐭𝐞𝐫 - Ke...
    𝐋𝐢𝐧𝐤𝐞𝐝𝐈𝐧 - / keertipurswani
    #designpatterns #systemdesign #softwareengineer

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

  • @kishorepurswani1212
    @kishorepurswani1212 ปีที่แล้ว +7

    Perfect example of adapter to introduce the topic

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

    Explanation was great, starting with a real world example then coding it and following up with a class diagram. Thank you!

  • @seeker4430
    @seeker4430 ปีที่แล้ว +7

    If only you didn't use C++ and used more mainstream language like Java or C# it would be a lot more helpful

  • @shivraj940
    @shivraj940 10 หลายเดือนก่อน +2

    Mam, Please complete this course. I was interested to learn more on LLD from you. Its amazing!!

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

    I randomly came across this video and found it worth my time. So nicely you have explained i!

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

    Your explanation is really simple to understand. Please keep making such videos. Thanks a lot

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

    Excellent, It is very helpful design pattern videos, Waiting for other patterns - Facade and decorator and others.

  • @HarshSharma-ff3ox
    @HarshSharma-ff3ox ปีที่แล้ว +1

    Very well explained. Understood it completely. Thanks for this tutorial 😊💯

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

      Thank you so much! Means a lot! ❤️😇

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

    What a way of explanation, i love your explanation, because often you co relate with some intresting example, Keep sharing such amazing content 🙏🙏🙏🙏🙏🙏🙏

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

    What if you have now a new format to be converted to JSON ?
    I think you need to have a parent class called "data" and derive "xmldata" and other new formats.
    And now, the the adapter class should have "data *" as member which calls getdata (overidden in xmldata and new formats class)

  • @shivarajakumar9175
    @shivarajakumar9175 10 หลายเดือนก่อน

    very useful and clear explanatoin. thankyou!

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

    Not very much aware of such situations as I don't have much experience yet in software development but understood the topic really well, very well explained mam.💯💯

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

    Very Clear !!

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

    can we create a object of baseclass(DataAnalyticsTool) with a derived class, instead we could have created an object of adapter class itself isnt it?

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

    PLS REPLY 🙏: Mam i just saw ur interview/talk with Harnoor on his channel Singh in USA... U said u started coding very late and u wasn't from CS ... So if I get lower branch in NIT Calicut and I start coding from 1st year itself can I get better package or can I get into Maangn or any other big companies like Uber atlassian if I crack my interviews and prepare accordingly from start itself ??

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

    This was amazing, I am studying this pattern for python but you explained it so well I understood it perfectly, thank you so much, you got a new sub!

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

    Thanks for the video! awaiting for the next video!

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

    eXcellent’e

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

    Video was really helpful. Thank you 💖

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

    Make videos on remaining design patterns also (facade, strategy, decorator)

  • @ShivamKendre-fc3su
    @ShivamKendre-fc3su 5 หลายเดือนก่อน

    Awesome video didi

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

    Very helpful. Thank you.

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

    Please make a video on the decorator pattern

  • @maheenazeez460
    @maheenazeez460 10 หลายเดือนก่อน

    Good Explanation 👏

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

    Hey ,really appreciate if you give idea on priority inversion , mutex and multitasking

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

      Will cover all of this in detail as well!

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

    thank you very much didi

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

      Hope you like the video! ❤️😇

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

    Hi Keerti, Could you please let us know when you will upload videos for rest of the design patterns. I found these videos very helpful. If it takes time please let me know the other source from where i can learn rest of them. Please help

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

      Hey, most of the common patterns are covered. strategy is another imp one. Will cover that soon. But, The LLD lives should be more helpful I think

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

    Thanks for Nice info about Adaptor pattern. Just a suggestion, It would have been easier to understand if you had written client code in separate file like your earlier videos.

  • @uttambhat4542
    @uttambhat4542 8 หลายเดือนก่อน

    Shouldn't the adaptees specificRequest be called instead of converting XML to JSON?
    XMLData class needs a analyseXMLData(); which should be called when adapyer.analyseData() is called from the client?
    I guess we have to either write different functions to analyse different kinds of data(in different data classes) or write functions to convert different data types into XML(in different adapter classes)
    seems like writing different data classes is reusable too

  • @anchitbhushan6172
    @anchitbhushan6172 4 หลายเดือนก่อน

    What if the DataAnalyticsTool class (the target class) is an external library and it does not allow itself to be inherited ?

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

      Then we’ll have to create Adapter class which will contain (Containment) DataAnalyticsTool, it will do the conversion (XML to JSON) and delegate (Delegation) processing to DataAnalyticsTool.

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

    Why should we use virtual?

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

    Would you mind doing same in java

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

    di, when will the next video come out in code from scratch channel? 😴

    • @KeertiPurswani
      @KeertiPurswani  ปีที่แล้ว +3

      Next 5 videos are recorded and in pipeline for editing. Will start uploading this or next week for sure!

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

    How can i get this code?

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

    you are not correctly putting your classes into the diagram. Adaptee is not a XmlData class

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

    java code :
    import org.json.JSONObject;
    import org.json.XML;
    class XmlData {
    String xmlData;
    public XmlData(String xmlData) {
    this.xmlData = xmlData;
    }
    public String getXmlData() {
    return xmlData;
    }
    }
    class DataAnalysisTool {
    String jsonData;
    public DataAnalysisTool(String jsonData) {
    this.jsonData = jsonData;
    }
    void analyzeData() {
    System.out.println("Analyzed data");
    }
    }
    public class Client {
    public void processData(DataAnalysisTool obj) {
    obj.analyzeData();
    }
    }
    public class Adapter extends DataAnalysisTool {
    XmlData xmlData;
    public Adapter(XmlData xmlData) {
    super("");
    this.xmlData = xmlData;
    }
    @Override
    void analyzeData() {
    String json = convertXmlToJson(xmlData.getXmlData());
    System.out.println("Converting xmlData to JSON format: " + json);
    super.analyzeData();
    }
    private String convertXmlToJson(String xmlData) {
    JSONObject jsonObject = XML.toJSONObject(xmlData);
    return jsonObject.toString();
    }
    }
    public class AdapterPattern {
    public static void main(String[] args) {
    XmlData xmlData = new XmlData("sample XmlData");
    DataAnalysisTool obj = new Adapter(xmlData);
    Client client = new Client();
    client.processData(obj);
    }
    }