#CS247
Objective of OOD/OOP
- abstraction
- interface
- data abstraction/ADT
- reuse
- inheritance
- conposition
- as is (in client code)
- modularity/ separation of concerns
- immutability (keep developers from changing your code)
- information hiding/encapsolation
- encapsulate design decision that may change
- Polymorphism
- code that works with lots of data types
- functions
- templates
- typehierarchy
- code that works with lots of data types