Inversion of control : router (generic code) call and use custom/reusable code (maps - views or others) Facade A single class that hides the complexity of an entire subsystem.