We all know the venerable Model-View-Controller pattern used to design interaction [mostly] with human users. It is the de-facto standard in OOP environment.

What are some other interaction design patterns worth mentioning? Non-OOP (functional, logical, etc) approaches welcome, too.