1. MVC
(1) Model: The application object;
(2) view: the screen presentation of the model;
(3) controller: the way the user interface reacts the user input.
2. View and model: decouple views and Models
Establish a subscribe/policy protocol between views and models.
Subscribe: update or create views without rewriting models.
Required Y: changing models will have y views that depend on them.
3. View and view: compositeview: implemented as a complex view containing nested button views.
4. View and controller: encapsulate the response mechanic to user input in a controller object.
(1) There is a hierarcy of controllers, making it easy to create a new controller as a variation on an existing one.
(2) A view uses an instance of a controller subclass to implement a participant response strategy.
(3) to implement a different strategy, simply replace the instance with a different kind of controller.
(3) To change a view's controller at run-time.
5. Observer:
A design to applicable to a more general problem: decoupling objects so that changes to one can affect any number of others without requiring the changed object to know details of the others.
6. Composite:
A design to let programmers create a class hierarchy in which some subclasses Define primitive objects and other Classes define composite objects that assemble the primitives into more complex objects.
7. Strategy:
A strategy is an object that represents an algorithm. it's useful when you want to replace the algorithm either statically or dynamically, when you have a lot of variants of the algorithm, or when the algorithm has complex data structures that you want to encapsulate.
9. Main relationships and other relationships in MVC
(1) Main relationships: Observer, composite and strategy.
(2) other relationships: factory and decorator.