Abstraction
Designing and building things that work is at the heart of engineering. Engineers have to work together in teams to build complex systems, whether software, hardware, cars, planes, or bridges. This complexity is a major source of engineering cost and errors. With the wrong engineering approach, every team member can end up needing to understand every other team member's work, which means the total effort requires to build a system of size n is proportional to n2! The solution to complexity is abstraction, also known as information hiding. Abstraction is simply the removal of unnecessary detail. The idea is that to design a part of a complex system, you must identify what about that part others must know in order to design their parts, and what details you can hide. The part others must know is the abstraction. Programming languages like Java are designed to support you in creating abstractions. You are already familiar with one kind of abstraction, a function abstraction. Every time yo
Abstraction Abstraction Topics: What is abstraction/information hiding? Function abstraction Clients vs. implementers Data abstraction Abstract Data Types (ADTs) ADTs via visibility qualifiers ADTs via Java interfaces Programming with interfaces Designing and building things that work is at the heart of engineering. Engineers have to work together in teams to build complex systems, whether software, hardware, cars, planes, or bridges. This complexity is a major source of engineering cost and errors. With the wrong engineering approach, every team member can end up needing to understand every o
Explore this link on the map →related reading
- Up and Down the Ladder of Abstractionworrydream.com
- Abstraction (computer science) - Wikipediaen.wikipedia.org
- The Law of Leaky Abstractions – Joel on Softwarejoelonsoftware.com
- Reading 10: Abstract Data Typesweb.mit.edu
- Reading 6: Abstract Data Typesweb.mit.edu
- 4. Encapsulation - CS2030S Programming Methodology IInus-cs2030s.github.io
- Structure and Interpretation of Computer Programsmitp-content-server.mit.edu
- Up and Down the Ladder of Abstractionworrydream.com
- Hyrum's Lawhyrumslaw.com
- Reading 7: Abstraction Functions & Rep Invariantsweb.mit.edu
- Reading 11: Abstraction Functions & Rep Invariantsweb.mit.edu
- artima - Josh Bloch on Designartima.com