Architectural Patterns Support Lecture

advertisement
Support Lecture
Architectural Patterns
Software Architecture

Architecture is OVERLOADED
•
•



System architecture
Application architecture
Architecture for this presentation is
The modules, processes, interconnections, and
protocols which constitute the deployed software
system.
Different from the behavioral architecture which
describes how the business classes execute the
business processes.
Architecture Specification


Document which defines in text and
diagrams the design, flow and technologies
of the design.
Shows how persistence, communication,
and behavior are to be implemented in the
system.
Architectural Layers - Patterns
• Presentation
• interactions with the user – HTML, thick client, MVC, web
services
• Domain (Logic)
• Business rules, validations, calculations, verifications
• Data Storage
• database
• Environmental
• Session management, messaging
Presentation Architectural Patterns

Presentation

No Client

Thick Client (rich client)

Thin Client
interactions with the user
Presentation Architectural Patterns



Model View Controller
Application Controller
Input Controller
•
•

Page Controller
Front Controller
View Controller
•
•
•
Template View
Transform View
Two Step View
Model View Controller
Model – Domain object
View – Presentation object
Controller – Controller
object to handle user
request/response
Separation of Presentation (View/Controller) from Domain (Model)
Separation of View and Controller
Application Controller
Input Controller
View
Application
Controller
Domain Layer
Application
Controller –
determines which
type of input is
needed or which
screen.
A centralized point for handling screen navigation and flow of an
application.
Application Controller
Application Controller




A single point of control to change
program flow and navigation
May be in mediating layer between
the presentation and the domain
May be reusable across various
presentations
Testable outside the UI framework.
Front Controller
Page Controller
Front vs Page Controller

Front Controller
•
•
•

Single point for adding behavior
Can add behavior dynamically
(filter pattern)
Use with more complex
applications
Page Controller
•
•
•
Simple - Input controller per page
Don’t put controller logic into
scriplets – use separate classes
More prone to duplicate code
with this controller
Template View
Transform View
Example
Data Storage



Need mechanisms to allow RDBMS to
communicate in the OO world.
With OO databases none of these patterns
necessary.
Useful even if non-OO language wants to
communicate with RDBMS to make the DB
flexible to change in type and to make the
data representation protected.
Data Storage Patterns





Table Data Gateway
Row Data Gateway
Active Record
Data Mapper
Structural Patterns
•
Foreign Key Mapping, Identify Field
Association, Table Mapping, Single Table
Inheritance.
Table Data Gateway
Row Data Gateway
Row Data Gateway (2)
Active Record
Data Mapper
Distribution Patterns


Remote Façade
Data Transfer Object
Remote Facade
Data Transfer Object
Summary




No one patterns is an end all
Patterns are mechanisms to help decompose
applications into reusable, maintainable,
modules.
The layers of development help to define the
needed patterns
No pattern is always correct -- fit the
application.
Download