《設計模式——可複用物件導向軟體的基礎》學習筆記(1.2)Design patterns in Smalltalk MVC...

鍾超發表於2011-11-26
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/notify protocol between views and models.
Subscribe: Update or create views without rewriting models.
Notify: Changing models will notify 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 mechanism to user input in a Controller object.
(1)There is a hierarcy of controllers, making it easy to create a new controller a new controller as a variation on an existing one.
(2)A view uses an instance of a Controller subclass to implement a particular 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.

相關文章