[{"data":1,"prerenderedAt":148},["ShallowReactive",2],{"term-a\u002Fabstraction":3,"related-a\u002Fabstraction":134},{"id":4,"title":5,"acronym":6,"body":7,"category":115,"description":116,"difficulty":117,"extension":118,"letter":119,"meta":120,"navigation":121,"path":122,"related":123,"seo":128,"sitemap":129,"stem":132,"subcategory":6,"__hash__":133},"terms\u002Fterms\u002Fa\u002Fabstraction.md","Abstraction",null,{"type":8,"value":9,"toc":109},"minimark",[10,15,19,23,26,30,98,102,105],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Abstraction is hiding the messy details and showing only what matters. When you drive a car, you don't need to know how the engine works — you just use the steering wheel and pedals. Code abstraction works the same way: expose a clean interface, hide the complexity underneath.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Abstraction is an OOP principle that hides implementation details and exposes only relevant interfaces. It reduces complexity by allowing programmers to work with higher-level concepts without understanding lower-level implementation. Achieved through abstract classes, interfaces, and encapsulation.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F You interact with the abstraction, not the implementation\nconst db = new Database();\ndb.save(user); \u002F\u002F don't care if it's SQL, NoSQL, or CSV\n","javascript","",[38,39,40,49,77],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F You interact with the abstraction, not the implementation\n",[41,50,52,56,60,64,67,71,74],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","const",[41,57,59],{"class":58},"sTEyZ"," db ",[41,61,63],{"class":62},"sMK4o","=",[41,65,66],{"class":62}," new",[41,68,70],{"class":69},"s2Zo4"," Database",[41,72,73],{"class":58},"()",[41,75,76],{"class":62},";\n",[41,78,80,83,86,89,92,95],{"class":43,"line":79},3,[41,81,82],{"class":58},"db",[41,84,85],{"class":62},".",[41,87,88],{"class":69},"save",[41,90,91],{"class":58},"(user)",[41,93,94],{"class":62},";",[41,96,97],{"class":47}," \u002F\u002F don't care if it's SQL, NoSQL, or CSV\n",[11,99,101],{"id":100},"when-youll-hear-this","When You'll Hear This",[16,103,104],{},"\"The abstraction layer lets us swap databases without touching business logic.\" \u002F \"Good abstractions hide complexity and reveal intent.\"",[106,107,108],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":110},[111,112,113,114],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":100,"depth":51,"text":101},"architecture","Abstraction is hiding the messy details and showing only what matters.","beginner","md","a",{},true,"\u002Fterms\u002Fa\u002Fabstraction",[124,125,126,127],"Encapsulation","Interface Segregation","Dependency Inversion","Polymorphism",{"title":5,"description":116},{"changefreq":130,"priority":131},"weekly",0.7,"terms\u002Fa\u002Fabstraction","PW9E2kTLuUwk-0lgjshLBnMufJki4IvfBjXSsF5-ckY",[135,139,142,145],{"title":126,"path":136,"acronym":6,"category":115,"difficulty":137,"description":138},"\u002Fterms\u002Fd\u002Fdependency-inversion","intermediate","Dependency Inversion says high-level code shouldn't depend on low-level code — both should depend on abstractions.",{"title":124,"path":140,"acronym":6,"category":115,"difficulty":117,"description":141},"\u002Fterms\u002Fe\u002Fencapsulation","Encapsulation is bundling data and the methods that operate on it into one unit, and hiding the internal state from the outside world.",{"title":125,"path":143,"acronym":6,"category":115,"difficulty":137,"description":144},"\u002Fterms\u002Fi\u002Finterface-segregation","Interface Segregation means don't force classes to implement methods they don't need.",{"title":127,"path":146,"acronym":6,"category":115,"difficulty":137,"description":147},"\u002Fterms\u002Fp\u002Fpolymorphism","Polymorphism means the same method call can do different things depending on which object it's called on. Call 'speak()' on a Dog and you get a bark.",1776518253943]