Course Hive
Search

Welcome

Sign in or create your account

Continue with Google
or
Memento Design Pattern | UML + Code | System Design
Play lesson

System Design Full Course - Memento Design Pattern | UML + Code | System Design

5.0 (4)
27 learners

What you'll learn

This course includes

  • 34.3 hours of video
  • Certificate of completion
  • Access on mobile and TV

System Design Full Course Memento Design Pattern | UML + Code | System Design

Memento Design Pattern | UML + Code | System Design Transcript and Lesson Notes

ان جی تو کرے start Welcome back Koder Army our Celestial D series and again we have taken a very simple design pattern very specific design pattern whose name is Meminto design pattern now what is this? a very small use case that if you want to save some of the snapshots or states then

Quick Summary

ان جی تو کرے start Welcome back Koder Army our Celestial D series and again we have taken a very simple design pattern very specific design pattern whose name is Meminto design pattern now what is this? a very small use case that if you want to save some of the snapshots or states then

Key Takeaways

  • Review the core idea: ان جی تو کرے start Welcome back Koder Army our Celestial D series and again we have taken a very simple design pattern very specific design pattern whose name is Meminto design
  • Understand how memento fits into Memento Design Pattern | UML + Code | System Design.
  • Understand how design fits into Memento Design Pattern | UML + Code | System Design.
  • Understand how pattern fits into Memento Design Pattern | UML + Code | System Design.
  • Understand how code fits into Memento Design Pattern | UML + Code | System Design.

Key Concepts

Full Transcript

ان جی تو کرے start Welcome back Koder Army our Celestial D series and again we have taken a very simple design pattern very specific design pattern whose name is Meminto design pattern now what is this? a very small use case that if you want to save some of the snapshots or states then you will use the design pattern what is the meaning of saving snapshots we will see through the example and you will get all the things crystal clear this is a very simple design pattern so you will get all the things let's go to the screen so see to understand Meminto consider that you have an object let's say OB1 and this object is a state change so now this state will go up to a state OB1 dash then this state will go up to a state OB1 double dash so this state is a state change and you want to take a snapshot take a screenshot like a screenshot and store it somewhere so that if you have an object in a state OB1 and you want to know which one was the previous state so I will go to the snapshot and return the state so I have to do a very simple use case I need an under-functionality and that under-functionality and that under-functionality should be let's say I want to know which state was the object stable after this state our object is unstable so this is the reason we are giving an output or error so I want to do a rule on the previous state so that all our work was going smoothly so I will do a snapshot and then take a snapshot and put it back so this is the memento pattern memento says that when your object is changing the state I will take a screenshot so that when you have to do a rule then I will give you a complete state object when we discuss about it we will understand how it is going to be let's see I want to understand three keywords how complicated the keywords are very simple first let's write the keywords one keyword is our self-memento okay one is our originator and the third is our caretaker okay so we have three keywords memento, originator, caretaker what we do now let's understand it once okay let's understand it once let's discuss our originator okay originator is not something but an object which has a state change like in our example this was the OB1 it was changing and we had to take the screenshot so this is our originator the actual original object which is a state change right from that memento memento is a screenshot which takes every time in the state so we take a screenshot you can say that the screenshot one, snapshot two, snapshot three, so every object which you take is a memento okay and the third is our caretaker and the caretaker is not a caretaker what is it all these mementos store they manage so basically you can say they have a list of mementos okay or one memento it can be it has all the mementos list or that memento it can be managed so we take care because caretakers do what and what is the memento and the originator's state saves his old all his states okay if you take an example you will get crystal clear so let's go okay and the example is a practical where I am using a memento pattern and that is database transaction management now what is the problem see you understand do you have different types of database one is SQL databases and one is no SQL databases and the other is first they focus on generally there is no database SQL so what will happen in the day and the columns let's say you have row 1 let's make it a little bigger okay so we have a row 1 this idea will be called okay so let's say sorry we have some name okay so let's say this is and let's say it is a row 1 so this is a row this is a row 2 so I am saying whenever you do query you can create queries you can update any value or delete or we say what is the correct operations so what is the problem you can write query and just write SQL database and write the database so let's say change the 1.0.1 and the 2.0.1 and then you can say it can be a transaction fail due to many issue let's say network issue okay some of the API calls but if you have a data base then you will get inconsistency so I had to do 1.0.1.2 to add some other name and do some other I did 1.0.1.2 but I didn't save so this is inconsistent state the roll number changed but it can be a problem whenever our database is in consistent state we call the roll back roll back to your previous state where everything was right you need to work better from this roll number to make all values same so that we can put the query and change the whole query we want to get a bit of dbms I want to do 1.0.2 and now we want to do both change or change the roll number changed because we can send to another node to the map string we need to keep a key تو لیکن آپ کو کوئی کی value کو update کرنا ہے تو لیکن آپ نے value کو update کر دیا لیکن اس وجازے اس value کو update کر دیا کی وجازے آپ کا جو map ہے وہ ایک inconsistent state میں آیا تو آپ کو previous state پے جاں جہاں جہاں آپ کا جو map تھا وہ صحی تھا تو again آپ کیا کروں گے role back کروں گے تو in operations call role back کہیں جہاں پے آپ اپنے previous state پے جاتے جہاں پے سپ کوچھ چک تھا تو میں this DB transaction management کیا ایک exemplo لے تھا اگر آپ کو SQL آتا ہے تو کو پہدا ہوگا کہ جب بھی Transaction بنتا ہے data base میں Transaction بنتا ہے تو کیا ہوتا ہے اگر آپ کو نہیں آتا کوئی بات نہیں ہم چھوٹا سے ایک exemplo لے لے اس کو اس کو کھیں بھی بھی اپلای کر سکتے ہو پر Imagine کروں کی ایسا ہوتا ہے کہ جب بھی آپ data base میں کو change کرنے لکتے ہو نہ تو ایک دمین laymen terms میں آپ کو سمجھا رہاں کہ جب بھی Transaction ایک create ہوتا ہے پہلے آپ نے معلوے query لیکی let's say insert into کوئی بھی table کا نام لکت دیا ٹک ہے with values تو آپ نے کوئی بھی انسٹ کر رہاں یا پھر آپ انسٹن کر رہاں لیکن آپ update کر رہاں آپ کوئی data base میں کوئی operation perform کر رہاں لیکن آپ کوئی crud operation perform کر رہاں جس میں آپ کی database کی کوئی rho affect ہو تو پہلے Transaction کوئی create Transaction اگر آپ کے جو بھی change ہے وہ ہوں گے اگر وہ change سپکچ سہی ہے تو commit ہو جائے گا commit کا مطلب میں ٹک ہے اگر سپکچ سہی ہے مطلب یہ ساری چیزے ایک ستچھے Change ہو گئی سکوال کو پتا ہے کہ کوئی Nightever کی شو نہیں آیا کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی کوئی یہ کچھ کچھ کوڑ ہوť ہوگo Big Intransection If everything is fine then commit else rollback یہاں پہنے آئے گا یہ والا جو bracket یہ Method call کہاں تو یہاں پہ آئے گا یہاں پہر ایک Method تو کچھ اس طرح کا کام ہوť ہوگo اب آپ سمجھو کہ یہاں پہنے میںنٹو Design Pattern کو کیسے ایس کر سکتے ہیں یا Internally میںنٹو کیسے ایس ہوتا ہوگo اب میںنٹو کا ہی کام ہے جب ہم rollback کرتے ہیں تو DataBiss کو پہنہاں چینے کیا تھی کیا؟ میں نے اس کو تو بول دیا بھای rollback کر لے آپ نے آپ کو تو نے 102 کر دیا Roll number کو پر نام تو نے چینج نہیں گیا اب واپسے rollback کر لے جو تو پہلے ایسٹیٹ میں دا یعنی کی وہ ایسٹیٹ کہیں تو save ہونی چیئے اور وہی کام آتا ہے ہمارا Memento Pattern کیوں کہ وہ کیا کرتے ہیں جب بھی آپ کوئی اپریشان پر فارم کرنے لکتے ہو یعنی کی ممنٹو لے لے اور اس کو ایسٹور کر لے دا پہلے اس کا ایک SnapShot لے لے اور اس کو ہم بولتے Memento یعنی کی ممنٹو لے لے اور اس کو ایسٹور کر لے دا caretaker بھی ہمارے 3 چیس پڑے تھے originator Memento caretaker originator یہ transaction کیوں کہ اس کو اپنی state کو save کر vana ہے Memento وہ state ہوی جس کو ہم save کر رہے اور caretaker Memento کو manage کر دا اب وہ Memento کا کام کی وہ state کو save کر کر رہنا اور caretaker کام اس Memento کو manage کرنا یہ ہمارے ایک کی وہ state کو update کر رہے دیلیٹ کر رہے اب یہ اندر سے آپ کیا کرتے ہوگئے آپ کو پتا ہوگا create میں let's say آپ کو اینی کی value pair اس میں add کر دے دے دے دے update میں کوئی جو پہلے سے add it اس کو update کر دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے دے اب اس کے allow vana میں چاہا تھا اس کے state بھی سیب ہوتی جائے دے دے دو میں میں 2 new methods کو introduce کر رہے ایک ہوگا create Memento ایک Memento کو create کر دے دے دے دے دے دے دے دے دے restore یہ کیا یہ کیا یہ ایک Memento ڈیسے ڈیسے ایک Memento ڈیسے ایک Memento ڈیسے ایک Memento ڈیسے ایک Memento ڈیسے ایک Memento وہ save کر لیتے ہیں ایک Memento ایک Memento ہے کہ ایک Memento لیکن میں create Momento ڈیسے ایک SnapShot ایک ایک ایک Screenshot create و ایک Memento restore ایک Memento restore تو اب ایک Memento اب یہ کنسہ Memento جہاں پے آپ کو restore کرنے تو ایک ایک 3 اپنے 5 ڈیسے اب دیت کری ہوگی اس طرح اب اب یہ اسwell you restore کرو اسwell you پے آپ اسwell you Memento لگے لیکن یہ m1 یہ m1 m2 یہ m3 یہ m4 یہ m5 آپ نے کہاں m3 momento یہ پاس کیا اور وہ ل a restore کیا یہ restore کیاں یہ restore کیاں یہ restore کیاں یہ یہ restore کیاں m2 وہ step v set state, kis ke momento ka, tus ke pa sik me mento ka reference ho tao ka, tto bhol ta ho ka late sik, sorry s pesef ka kare sik te, me mento dot set state, me mento dot set state, aur usko pnai e map de dega MP, aur bholi ga leva i usko pnai pa saif ka le, tujaisis ne me mento dot set state kia, yevala method kao lo ga, itstus ko e map dea MP, is me mento ne kya kia, isko apne iswale mapne saif ka kare liya, tuk trai ek screenshot le liya, to abhi current jo map dea, wo is me mento ne saif ka kare liya, kia, kia, ab agin iske pa sik aur method ho ka get state, sorry iske pa ha, ek aur method ho ka get state, aur jabbi ap isme method ko kual kare ho ge, wo kuchni kerega, yevala map return dea ka, abdeko, abdbi apie restore kual kare te ho ge tuk kia ho tao ka, agar ap restore kibimplementation deak na chau, to apko samajai dea ho ka, kia, hami yaaphe le te hai restore, ye kya kare te hai ek me mento liya, m aur kya kare te hao ka, apko patai lagrao ka, pale em ka kual kare te hao ka get state, to em aapko ek state la kare te deak ha, iske particular me mento ne, jubi state apne pas rakhi ho kia ni ki, isme mento ne, jubi apne pas map rakha ho ka, wo get kare te deak ha, aur ye get kare kia kia, isko deak ha, abhi isko kisi agin apne mapne restore kare vasak teo, to let's se ye ye, isko apne agin MP me saif ka kare liya, tuk trai ek ha, let's se MP kual to, m dot get state, tuk kia, tuk trai kia, apne MP me, maatlep apne map me, m ka, maatlep apne is momento ka, get state call kare te, maatlep ye wala maatle call kare te, is get state ne, isko ye wala maap rakha kare te, aaphe maapis nahi, aaphe update kare liya, to yehaphe apne restore biya, to apsama ajrao, kui data base restore kia se ho raya aur create momentum kia se ho tai, to jubi kui create update ja delete operation ho tao ka, aaphe uze pale wo create momentum kual kare te hao ka, create momentum kia kare ka anthar se set state call kare ka, aaphe uze pale kare ka, maatlep dot set state aur jubi kia se ho tai maap tha, wo is momento kodide kia ke le wala maap abhi tu store kare kare kakle, maat change ho ne walaom, agar kui dikka tai ki aur kalko moge wapa se teri state me aana hai, to tu moge wapa se wo dei diyo kia se, maatlep maa restore call kare ka, ek maatlep maa nto ka object loonga m, aaphe uze pale kare te, maatlep maa nto ka, maatlep maa nto ka, kare te kare me mentos ko store karte hai wo me mentos ko manage karte hai, wo ski kare te king karte hai, rite to iske pass ek reference ho na chi e me mento ka, me mento let's say, m, tki ke, to iske pass pale bata ek me mento ka reference haa kia m, aap deko, haamp yeapes me mento ka, haamp nahi aaphe sif ek me mento liya rite, par me nahi amne aapne discuss kia da ki haamp me mento ka ek me aaple sakti ek listi kia wagara wagara. par iske e smis particular example me naha, haamp yeki me mento isle liya, کیfighting I.Franockfunning تو ہم کریں گے role back تو جیسی ہم role back کریں گے تھا بھی اس مومنٹوں کا کام ہوگا لیکن اگر ہم نے role back نہیں کیا ہم کمیٹ میں چھ لے گے تو میں اس مومنٹوں کا کام نہیں ہوگا یعنے کیا ہم ایک ہم مومنٹوں store کریں گے نہ کی ایک list of mmentos کیا دیتا بھی اس میں ہم پچھے a state پہلے نہیں جائیں گے ہم سے فک پیچھلی state میں جائیں گے پر ایسا اور بیگسامبلہ جس میں ہو سکتا آپ کو بہت ساری state پچھے جانا ہوں اس کا جب امریل ویڈسینیڈیو дисکس کریں گے مومنٹوں کو дисکس کریں گے گے تو ابھی ہم نے کیا ایک مومنٹوں کو store کر لیا right تو دیکھو اب کیا ٹیگر کے پاس کون کون سے method سوتے ہوگے سپ سے پہلے کیا ٹیگر کے پاس جو مارے پاس ہم نے use kids дисکس کیا تھا ایک ہوگا ہمارہ big in transaction تو میں لیلتا بھیگن transaction اور یہ کیا لیتاوگا لیتسک دیتا بھیس لیتاوگا دیتا بھیس کون سے database پر transaction کو begin کرنا دی بھی دیکھا اب دیکھو جیسے اس نے begin transaction DB لیا یہ انٹرنالی پتے کیا کرتا ہوگا اس DB کا call کرتا ہوگا create memento تو DB کو بہی اپنے ایک momento create کر اور اس کو یہ safe کر لے گا اپنے اس M variable جو اس نے momento کو object رکھاوے تو جیسے DB کا create momento call کرے گا آپ کو پتے کیا کرے گا یہ اندرسی اس کا call کرے گا set state اور ایک map دیگا اپنے کرنٹ میں اپنے اپنے ایک momento بنا کر کے رکھلے وقتل میراک snap shot بنا کر کے پھنے پاس رکھلے اور جیسے یہ momento بنا کر کے پھنے پھنے پاس رکھے قریعت memento سے return کر دے گا اس M کو یا کی care takeer کے پاس ممنٹو یا نی کی care takeer کے پاس اس data بیس کی ایک پورانی state موجود اور care takeer کو یہ بھی نہیں پتا کی his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data his data from this data his data کوئی بھی ان کنسیستنسی نہیں ہے تو یہ اندر سے پتے گے گے گا اس M کوディلیٹ کر دے گا کی بھی اب جو بھی میرے پس بیک ہم اس کوディلیٹ کر رہوں کے گئی بھی اس کی ضرط نہیں ہے اور again ہمارے پس ایک اور میں تھا دوگہ روال بیک یہ بھی گڑے دبیس لے تھا ہوگا لیک سے DB same database لے گا ہے نا اب آپ کو پتا لگی کی ہوگا جب بھی sorry آپ کو پتا لگی کی ہوگا جب بھی روال بیک کال ہوگا یہ گے گا اس DB کا روال دیگی کی ہوگا اس DB dot restore m یعنی کی اپنے آپ کو اس mmento سے restore کر لے اور آپ کو پتا ہے جسی database کا restore کو لوگ تھی یہ mmento کا get state call کرتے ہیں mmento اس کو state لگر کے دیتزا ہے اور یہ state اپنے map میں safe کر لے that's it that's how things are working اگر امین کی dependency دیکھیں تو ہمارے پس جو k ڈکہ ٹکہ رہے it has a mmento mmento okay اور ہمارے پس جو mmento اور database کے بیچ میں Ling کہنا یہاں یہاں تو آپ کہسکتو direct link بھی ہے جو کی database mmento کو create تو کری رہے پر ان்டோ کو use-con sorry ulter wang اب دیکھیں ہمارے جو بھی Client ہوتا ہوگا وہ کیسے اماری اپلیکشن کو use-con پہلے وہ caretaker کو بلتا ہوگا begin transaction جسی transaction begin ھوتی ہوگی آپ کو پتا ہے یہاں کو بلتا ہوگا بھی اپنی چکے اب جسی snap shot بن گیا اب Client کا گا میں کوئی operation perform کرنا ہے تو create update delete Client کو جو کرنا کرے گا ایک بر create update delete ہوگیا تو Client کو decided کرنا ہے کہ یہ جو transaction change ہوگر کے آئی ہے کیا میرا database consistent state پہئے ان consistent اگر consistent تو وہ commit call کر دے گا commit call ھوگا تو یہ mmento delete ہوگا اگر inconsistent تو وہ rollback call ھوگا یعنی کی جسی rollback call ھوگا caretaker database کو بلے گا بہای restore جو میں تو ایک mmento دیرہاں اس سے اپنی valueを restore ھوگا simple اب ایک بر his code و آپ کو جو بھی ابھی doubt آرے ہوگا ان میں وہ crystal ve er ھوگا جاگے گا کہ how database interact کر رہے ہیں کیا کہ how db کو بول رہے create mmento restore mmento وگا رہے ہیں تو چا لو تو یہ ہے یہ our code بلکل سے میں سپ سے پہلے ہمنا mmento کو آدمے پہلے دیکھتے ہیں ایک map لیتا string combustring اس کو میں بول دیا records اسی کو homestore کر رہے ہیں اسی کو homestore کر رہے ہیں اسی کو اسی کو اسی کے states کو میں safe کر رہے ہیں تو دیکھتے ہیں اسی کو simpall ایک update کیا کرتا کسی کیا کرتا ویڈی یہ return new database mmento اور اس کو records پاس کر دیا اب یہاں میں set mmento بنا ہے اب یہاں میں set mmento بنا ہے اب یہاں میں set mmento بنا ہے اب یہ string combustring data ویی map originator باستہ ایک upne constructor کر لیا ہے یعنی کی data mestore کر لیا جو بھی db data ایک upne rt upne rt upne rt upne rt upne rt upne rt upne rt upne rt upne rt upne rt upne bear mettom bird hai i ie ai ek e i ek i ie ai i u ести pen κ f i de e o k e e மرتہ ریسٹوڑ FROM MEMENTO یہ کیا کریں گa یہ ایک ممنٹو لگa اور اپنے ریکٹس کو Override کرا لگa تو ریکٹس equal to MEMENTO dot GetState تو یہ جو ممنٹو کی جو STATE HAY یہ جو GET STATE METHOD یہ کیا لATA کیا لATA قلا کے دیتا ہوگa یہ وہی دیتا لATA دیتا ہوگa یا کی وہ پورانا ہوا میں اف جو اس کے پاس پائلے سے STORائیں تو یہ کر رہے MEMENTO کو بウڑ رہا ہی اپنی پورانے والی STATE لагоر کے دے اس کو Records میں Override Gerva Lia تو you get Restored From Memento اسی دراتھa Create From Memento I hope you understand how we are doing both methods ایک ہم نے بس ایک Display Records لیکن ہم ساری کی Value Payers کو Display کر رازاکیں that's it, اس کا اتنا سے کام ہے اب چلتے اپنے KITGER کی طرف اس کا ہم نے نام رکھای Transaction Manager SQL Database ہم اس کو Transaction Managerی بھولتے ہیں تو Transaction Manager رکھا ہم نےپنے KITGER کا نام جس کا کام ہے Memento's کو Manage کرنا کیسے کرے گا دیکھو سپ سے پہلے یہ اپنے پاس Database Memento کا ایک Object Rook لے گا Backup ایک Reference Rook لے گا Backup اب اس نے کیا کیا سپ سے پہلے اس Backup کو نلپونٹر POINT کروالی ہے کیا کیا اینشلی ہمارے پاس کوئی Backup نہیں ہونا چیے اب ہمارے پاس تین میں ترتے Big In Transaction Commit اور Rule Back سپ سے پہلے دیکھو Big In Transaction جسی call ہوتا ہے کیا کرتا ہے Database لیتے ہیں اگر ہمارے پاس Backup ہے تو پہلے اس کو Delete کر دے گا یعنی کی Clean the Previous Backup اور پھر کیا کرے گا اس Backup میں دالگہ DB.Create Momento یعنی کی اس Database کو بلے گا اپنے ممنٹوں کریٹ کر Database کیا کرے گا ایک Momento کریٹ کرے گا اور جو بھی ممنٹوں کریٹ ہوگا وہ اس Backup میں آچے گا تو اس Backup میں ایک Momento پڑھا ہے اور Momento کے اندر کیا ہے ایک State ہے اس Database کی Simple اسی درازی ہمارے پاس Commit Transaction Commit Transaction جب بھی call ہوں گا اگر ان وہ چیک کرے گا کیا ہمارے پس آلڈی کوئی Backup ہے اگر ایک ہم اس کی ضرط نہیں ہے اور Backup کو دوارے سے Null Pointersign کر دو یعنی کی Transaction Committed Successfully کیا کہ اگر Commit Transaction Call ہوں تو میں MAN کے چل رہوں Client کو یہ بچ پتا ہے کہ Commit Transaction کا مطلب وہ کہاہی رہی Transaction صحی ہے میں رول باک کرنے کی ضرط نہیں ہے میں جا پریبیسٹٹ پہ نہیں جانا اسلے اس نے Backup کو Delead کر دیا لیکن اگر Rollback Transaction Call ہوں جاتا تو وہ Data Base کا کنسے مثلٹ call کر دیا اگر Backup ہے ہمارے پس تو وہ بولتا DB کو Restore From Memento تو DB کا Restore From Memento call کر دیا اور یہ والا Backup کا اوپ جک دیا دیا دیا دیا کہ میری پس یہ Backup پڑا ہے یہ Backup Play اور اپنے آپ کو Restore کر لے اور آپ کو پتا ہے جب بھی یہ Restore Call ہوں دیتا Base کا تو یہ کیا کر دیا یہ Memento لیتا ہے اور اپنے Records کو Update کر لے Memento.GetState call کر دیا تو دیکھا تو دیکھو اس کے بعد ایک بر Restore ہوں گیا اس نے again Backup کو Delete کر دیا اس کو Null Assign کر دیا اور بول دیا کی Transaction Rollback پر Imagine,گروں کی امرپس ممینٹو ہوتا ہی نہیں تو امرپس پڑھن کر دیا کہ بھی ہمارے پس Backup این یہ No Backup اوپنے اب یہ تو obviously ایک Terminating Condition ہے کہ مانلو Backup نہیں ہے تو کیا کریں گے بس that set اسلام نے L-State trend d'accu اب اگر اپنے main call کو دیکھا تو اپنے use کیا کر دیا ہوں گے دیکھو ہم نے دیتا بھی اس کو Object9 DB ایک Transaction Manager کو Object9 Transaction Manager ٹیکھا اب دیکھا ہم call کیا کریں گے سپ سے پہلے ہم call کریں گے Transaction Manager not Big In Transaction پہلے ہم نے Transaction کو بھیگن کیا بھیگن کیا اے امرپس پھلے ایک ممینٹو سو اب ہمارے یہ جو دیتا بے اس کی جو بھیstate اب یہ دیتا بھی خالی پڑھا ہے اس اگر ہم نے DB اب یہ Object Fresh بڑھا ہے یعний کی کی value payer over the khali ڈا ہوگa پر میں نے کا خالی جو پڑا ہے نا اس کی بیک state کو safe کر کرکھلو پیلے ایک state سے بگا جو گئی ہوگی ٹھیک ہے فر میں انسرٹ کرے دو user one user twaditi arawi دو insertions کرے اور فر میں نے کا transaction manager کی commit کر لے کی یہ جو میں insertion کریں گاں دم perfect ٹو transaction commit کر لے تو پہتے a commit transaction کیا کرے گا اس کو سمجھا جا جا گا کہ سپوچھ سئی ہے تو جو بھی اس نے back upストar کیا ہواس کو delete کر دے گاں پھر میں نے کو records کو display کر لیا پھر میں ایک failed scenario کو simulate کر رہوں میں کہاں میں دوارہ سے transaction کو begin ڈا یا نکی میں کہتا ہوں ابھی کا current scenario و نا اس کو safe کر کرکھلے یا نکی جو memento ہے اس میں user one user twaditi arawi جا گاں اب میں دو data or insert کرے user twaditi arawi user twaditi arawi soar of or manish میں نے ایک بر دوارہ سے record کو display کراں دے گاں تو بارے چارو record پھر میں من روم کیسی ریزن زینا کو چیرے را گیا ہمیں role back کرنے کی ضرادت ہے تو میں نے کہاں کیوں ایرے آگیا اب میں role back کرنے کی ضرادت ہے تو میں transaction manager کو بھلوں گا role back transaction db تو ہمارا جو بھی transaction تانے اس کو role back کر دو تو transaction یہاں میں beginوی تھی ابھی کو جیسے transaction beginوی جو بھی نوی جو گی تو اس نے کیاں کیاں جو بھی current state ہے اس کا snapshot لیا گا current state تو بس یہ تھا اچھا snapshot لیا گا فیر ام نے 2 insertions اور کریں user 3 user 4 پر فیر ام نے کہاں role back تو role back کیاں کرے گا اُس کے باز جو پورانا ممنٹو تجس میں سے 2 بیلڈیو تھی اُس کو update کرو آگے گا ہمارے current data بیس کو تو دیکھو role back کیاں تو کرتے ہیں اگر back up ہے تو db کا restore from memento call کرتے گا back up دیکھے اور restore from memento کیاں کرے گا اپنے record کو update کرا لے گا بیلڈیو تھی فیر ام نے تجس میں ممنٹو record لے گا آئے سمپل تو یہ ہمارا role back ہو گیا اپھر ام نے دبارا سے display record کر لیا اور اس بارس فیر ام دبارا سے user 1 اور user 2 ayer 2 ayer 2 اگر back up دیکھے بھیلڈیو اپنے call a big in transaction creating database back up ہم نے 2 database جالے user 1 آگے گا ہمارے user 2 a2 a2 روحیت دبارا ایک transaction بیگن کیا ہم نے 2 a2 user 3 user 4 moneesh دبارا سے print کیا ہماری transaction کو 4 value a2 روحیت a2 a2 a2 a2 a2 a2 a2 a2 a2 a2 a2 a2 a2 a2 a2 Fair an and یہاں 2 ھتے گٹستےٹ سٹٹٹ۔ اب یہاں آپ سٹٹٹٹ چھاہوں تو بناؤ سکتے ہیں یا نہیں بھی بناؤ سکتے آپ اس کو конструкٹر کے طروبی لے سکتے ہو سیمپل آپ اس کا جو ممنٹوں کا конструкٹر ہو گا نہ ممنٹوں اسی میں سٹٹ پاس کرா لو سٹٹھ سھ ہے اور اندر آپ کیا کر ہو گے This.State equal to s یہ کر سکتے ہو ہے نہ تو سٹٹٹ کی ضرطی نہیں پڑھے گی پر ابھی کے لام نے رکھلیا Gets.State and sets.State. اور پھر ہمارے پس کیے ٹے کرتے تھا وہ لستف ممنٹوں اٹھو سٹور کرتے تھا ہمارے ایس کے لس نے ایکی رکھا تھا پر اگر کوئی اور ایس کے ساتھ میں آپ کو بہت سر ممنٹوں اٹھو سٹےف کریں تو اب اس کو ہیشٹری کے اندر سیف کرتے ہو اور اس کے بہت دو میتھٹے اٹھ اور اندو جس میں ہمارے جو میتھڑ کا نام تو اس کے لئے کیا تھا ایک تو بیگن اور ایک رول بیک تو بیگن اور رول بیک ہمارے ایس کے لئے تھا اور یہاں پے اید اور اندو ہے کمیت تو بس اس ممنٹوں اٹھو دیلیڑ کرنے کے لئے تھا تو اید کیا کرتے ایک ارجینیٹر لے تھا اور اس کو اس کا کیا ٹیٹ ممنٹوں کول کرتے تھا ہوگا یعنہ اور اندو کیا کرتے ہوگا اس کا ریسٹور ممنٹوں کول کرتے تھا ہوگا سمپل اب آپ کو پتے یہ ارجینیٹر ہیزا ممنٹوں اور کیا ٹے کر روالسو ہیزا ممنٹوں لیڑ کی ممنٹوں کا ارجینیٹر کے پاس بھی کیا ممنٹوں کریٹ کر رہے اور کیا ٹے کر تو منج کر رہ ممنٹوں کو اس کے پاس بھی ان فات کیوں کی اس کے پاس ایک لیشٹ ہے تو ملکسکتے وانٹوں many reference of ممنٹوں تو یہی اس کا stand-in dml بہت سمپل فتح فڑھت کی stand-in definition دیکھتے تو دیکھو stand-in definition بھی بہت سمپل it provides an ability to take snap shot of an object at various point in time تو اب نے اس کے ایڑ کیا دن ایک object کے various point بھی snap shot safe کر سکتے a la galax snap shot sap ne pas srak srak hena and provide undo cap abilities to a previous state یہی بھی ہم کر سکتے ہم کیا کر سکتے کسی بھی previous state پے جا سکتے اور بھول سکتے بھی یہی والا snap shot مجھے باپس لا کر دے کیا کیا یہ جو تھی نا مک stable state اس کے بات سے من stable نا تو یہی ہے پورا کا fulla mmento design pattern اگر آپ his ke real use case ke baat کرو تو آپ کو خود ساوہ جا رہا ایک تو یہ database transection میں بہت ہماری HELP جس کا منا ایک کمیٹ role back ایک آپ کو used case ڈکت get me ڈکت نا ایک ممنٹو ممنٹو جو بھی ایک ممنٹو ایک ممنٹو ایک ممنٹو ایک ممنٹو ایک ممنٹو ریشتوری گٹھ ممنٹو بیسکلی database transection اس کے خود ساوہ ایک ممنٹو ایک ممنٹو باکہ اس بیڈو ایک آپ سے ملتا نکس لیکن تبتا کلی تک تک تک تک تک تک تک تک تک تک تک تک تک تک تک تک تک تک تک تک تک

Lesson FAQs

What is Memento Design Pattern | UML + Code | System Design about?

ان جی تو کرے start Welcome back Koder Army our Celestial D series and again we have taken a very simple design pattern very specific design pattern whose name is Meminto design pattern now what is this? a very small use case that if you

What key concepts are covered in this lesson?

The lesson covers memento, design, pattern, code, system.

What should I learn before Memento Design Pattern | UML + Code | System Design?

Review the previous lessons in System Design Full Course, then use the transcript and key concepts on this page to fill any gaps.

How can I practice after this lesson?

Practice by applying the main concepts: memento, design, pattern, code.

Does this lesson include a transcript?

Yes. The full transcript is visible on this page in indexable HTML sections.

Is this lesson free?

Yes. CourseHive lessons and courses are available to learn online for free.

Continue Learning

Course Hive

Continue this lesson in the app

Install CourseHive on Android or iOS to keep learning while you move.

Related Lessons

FAQs

Course Hive
Download CourseHive and keep learning anywhere
Get App