Driver
+ commute()
«interface»
Car
+ start()
+ accelerate()
+ brake()
PetrolCar
- pistons
- valves
- ecu
+ start()
+ accelerate()
+ brake()
- ignite()
- injectFuel()
The simple face
1interface Car {2 start(); accelerate(); brake();3}45class PetrolCar implements Car {6 private pistons, valves, ecu;7 brake() { ignite(); injectFuel(); ... }8}
State
abstractionwhat, not how