CSC/ECE 517 Summer 2008/wiki3 3 dm: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 5: Line 5:
[http://www.smallmemory.com/almanac/Martin98.html Acyclical Vistor] A more robust version of the more traditional visitor pattern, it defines operations to be performed on an object without adding them to the class itself or the class hierarchy.  This can be useful if one needs to build handling or transformation functions that would otherwise not be a part of that class hierarchy.  This visitor would be a valuable addition to our hierarchy as it becomes useful in any situation where the class contains information needed in a program but not in the form that is needed or otherwise needs to be operated.  Avoids the dependency loops that can otherwise result in visitor or other rigid designs.   
[http://www.smallmemory.com/almanac/Martin98.html Acyclical Vistor] A more robust version of the more traditional visitor pattern, it defines operations to be performed on an object without adding them to the class itself or the class hierarchy.  This can be useful if one needs to build handling or transformation functions that would otherwise not be a part of that class hierarchy.  This visitor would be a valuable addition to our hierarchy as it becomes useful in any situation where the class contains information needed in a program but not in the form that is needed or otherwise needs to be operated.  Avoids the dependency loops that can otherwise result in visitor or other rigid designs.   


[http://www.smallmemory.com/almanac/Sommerlad96.html Command Processor]A more complex version of the command pattern, it is defined by creating an object to encapsulate a request.  It allows you to create parameters for the methods that go with the request, allow for customization based on the client.  This pattern allows for scheduling requests and creating queues. This pattern can handle many different 'clients', creating a very versatile request and handling engine.  A good example would be an object that handles request for locks or encryption.
[http://www.smallmemory.com/almanac/Sommerlad96.html Command Processor] A more complex version of the command pattern, it is defined by creating an object to encapsulate a request.  It allows you to create parameters for the methods that go with the request, allow for customization based on the client.  This pattern allows for scheduling requests and creating queues. This pattern can handle many different 'clients', creating a very versatile request and handling engine.  A good example would be an object that handles request for locks or encryption.


[http://www.smallmemory.com/almanac/Meszaros95.html Half-Object+Protocol]
[http://www.smallmemory.com/almanac/Meszaros95.html Half-Object+Protocol] A pattern that deals with multiple address spaces and the problems with getting information between them.  Since you cannot have a single object that exists in more than 1 address space, you divide the object into two interdependent objects which use a protocol to communicate. This is a valuable pattern as its the basis of every type of distributed and internet structure, server/clients or even distributed nodes needing to communicate and being in separate address spaces. 


[http://www.smallmemory.com/almanac/Meunier95.html Pipes and Filters]
[http://www.smallmemory.com/almanac/Meunier95.html Pipes and Filters]

Revision as of 03:09, 26 July 2008

Problem Description

Patterns Almanac. Peruse the Patterns Almanac for additional patterns that seem appropriate to cover in CSC/ECE 517. Explain why the patterns are appropriate for students to learn, and if possible, link to training materials (explanations, examples, etc.) for covering them. Your reviewers should rate your choices on how much value they will add to the course!

Pattern Definitions

Acyclical Vistor A more robust version of the more traditional visitor pattern, it defines operations to be performed on an object without adding them to the class itself or the class hierarchy. This can be useful if one needs to build handling or transformation functions that would otherwise not be a part of that class hierarchy. This visitor would be a valuable addition to our hierarchy as it becomes useful in any situation where the class contains information needed in a program but not in the form that is needed or otherwise needs to be operated. Avoids the dependency loops that can otherwise result in visitor or other rigid designs.

Command Processor A more complex version of the command pattern, it is defined by creating an object to encapsulate a request. It allows you to create parameters for the methods that go with the request, allow for customization based on the client. This pattern allows for scheduling requests and creating queues. This pattern can handle many different 'clients', creating a very versatile request and handling engine. A good example would be an object that handles request for locks or encryption.

Half-Object+Protocol A pattern that deals with multiple address spaces and the problems with getting information between them. Since you cannot have a single object that exists in more than 1 address space, you divide the object into two interdependent objects which use a protocol to communicate. This is a valuable pattern as its the basis of every type of distributed and internet structure, server/clients or even distributed nodes needing to communicate and being in separate address spaces.

Pipes and Filters

Wrapper Facade

Related Links