1) Intercepting Filters
You want to intercept and manipulate a request and a response before and after the request is processed.
When:
a) Does the client have a valid session?
b) Does the request path violate any constraints?
c) Do you support the browser type of the client?
d) What encoding does the client use to send the data?
e) Is the request stream encrypted or compressed?
Actors:
a) Filter Manager
Filter Manager manages Filter Processing. It creates the FilterChain with the appropriate filters, in the correct order, and initiates processing.
b) Filter Chain
The FilterChain is an ordered collection of independent filters.
c) Filter
Filter represents individual filters.
d) Target
The Target is the resource requested by the client. Target here can be a Front Controller.
2) Front Controller
You want a centralized access point for presentation-tier request handling
When:
a) You want to avoid duplicate control logic
b) You want to apply common logic to multiple requests.
c) You want to separate system processing logic from the view.
d) You want to centralize controlled access points into your system.
Does:
a) Converts the protocol specific requests into a more general form with the help of Context Object. An example of this is retrieving parameters from an HttpServletRequest instance and populating a MyRequest object that can be used independent of any servlet-related artifacts.
b) Validates the ContextObject for FormBased and Business Validation using the Validator provided by the ContextObject.
c) Delegates request to Application Controller.
3) Context Object
You want to avoid using protocol-specific system information outside of its relevant context. An example of this is retrieving parameters from an HttpServletRequest instance and populating a MyRequest object that can be used independent of any servlet-related artifacts. Context Object also provides a framework to validate the user data.
Actors:
a) ProtocolInterface [HttpServletRequest, HttpServletResponse]
An object that exposes protocol or tier-specific details.
b) ContextFactory [RequestContextFactory, ResponseContextFactory]
A ContextFactory creates a protocol and tier independent ContextObject.
c) ContextObject [RequestContextObject, ResponseContextObject]
ContextObject is a generic object used to share domain-neutral state throughout an application. Per Form a separate ContextObject can be created like for example StudentAdmission form can have its own ContextObject called StudentAdmissionContextObject which has its own logic for validating form.
4) Application Controller
You want to centralize and modularize action and view management.
Does:
a) First, the incoming request must be resolved to an action that services the request. This is called action management.
b) Second, the appropriate view is located and dispatched. This is called view management.
Actors:
a) Client
Client invokes the application controller. In the presentation tier, a FrontController or an InterceptingFilter typically fulfill this role.
b) ApplicationController
Uses Mapper to resolve an incoming request to the appropriate action and view, to which it delegates or dispatches.
c) Mapper
Uses a Map to translate an incoming request into the appropriate action [Command] and view [ViewFactory].
d) Map
Holds references to handles that represent target resources [Command or ViewFactory]
e) Target
A resource that helps fulfill a particular request, including commands, views and style sheets.
5) CommandProcessing
You want to perform core request handling and invoke business logic before control is passed to the view.
Actors:
a) ApplicationController
Manages choosing the appropriate action [Command] to fulfill the request.
b) CommandProcessor
Helps in processing the Command.
c) Command
Command performs an action for a request. It invokes the business method on the BusinessDelegate.
d) BusinessDelegate
BusinessDelegate acts as the façade which hides the details of invoking the BusinessService.
e) BusinessService
BusinessService is the
f) PresentationModel
PresentationModel is the data returned by the BusinessService for the use by the view.
6) ViewFactory
Helps in creating View
Does:
a) View Preparation
The view preparation phase involves request handling, action management, and view management. A request is resolved to a specific action, that action is invoked and the appropriate view is identified, with the request then being dispatched to that view.
b) View Creation
Subsequently, during view creation, the view retrieves content from its model, using helpers to retrieve and adapt the model state. Often extracted and adapted from TransferObject, this content is inserted, formatted, and converted into the static template text of the view to generate a dynamic response.
Actors:
a) ViewHelper
It helps in separating a view from its processing logic. This can be in the form of JSPTags, Helper Pojos etc.
b) ViewTemplate
Template used in creating view.
c) CompositeView
You want to build a view from modular, atomic component parts that are combined to create a composite whole, while managing the content and the layout independently.
d) PresentationModel
Presentation Model is the data used by the view.
No comments:
Post a Comment