There are different types and levels of design patterns. For example, the Model-View-Controller (MVC) is the architectural level of design pattern.
Most design patterns are component level design patterns.
• The basic types are Behavior, Creational, Structural, and System design patterns.
• More types: Enterprise and SOA Design Patterns
Names are extremely important in design patterns; they should be clear and descriptive.
Christopher Alexander – construction architect – invented the main principles and published the first book on Design Patterns.
One of the first books in the software world was: "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph
Johnson, John Vlissides (often called the Gang of Four or GOF – Book :-)
Among other good books: Integration-Ready Architecture and Design.
Here are several examples of Design Patterns:
Name: Service-Oriented Architecture (Approach to software architecture)
Problem: Application development or even modification require longer and longer projects.
Why: Growing applications become more complex and rigid; too firm and inflexible in spite of the name – Software
Solution: Develop applications as a set of connected standard-based reusable services to minimize duplications and maintenance.
Was it clear so far? Highlight the text in question
Or
Impact: Extra time and efforts needed to learn and follow best practices and standards and to govern the development process.
Periodically re-visit and align technical and business architecture, carefully consider and govern creating new applications to avoid duplications and minimize maintenance.
Impact: Extra funding, time and efforts are needed for governance, while planning to retire some applications, modify and integrate others.
Name: Business-Driven Architecture (Architecture Level)
Problem: How can technology be designed to remain in alignment with changing business goals and requirements?
Solution: Business and architecture analysis is conducted as collaborative efforts on a regular basis.
Impact: To keep technology in alignment with the business that is changing over time, it will require a commitment in time and cost to govern the development process.
Name: MVC (Architecture Level)
•Problem: – Complex object involves user interface and data. Need to
simplify structure
Solution: Data in one part (Model), user View in another part (View), interaction logic in a third part (Controller)
– Model maintains state. Notifies view of changes in state.
– Controller uses state information (in Model?) and user request to determine how to handle request, tells view what to display
– View must correctly display the state of the Model
Impact: Requires separate engineering of the three parts and communication between them through interfaces
Name: Factory Method (Component Level – Creational Type)
Problem: Need to create a family of similar but different type objects, where objects are used in standard ways.
Solution: Creator class has a "getter" method which instantiate the correct subclass, for example, ConcreteProduct. Subclass is used through generic interface, for example, Product Factory.
Impact: Extra time for analysis and modeling upfront required.
Assignments: 1. Read more on Design Patterns: http://ITUniversity.us/school/public/training/SOADesignPatterns.pdf
2. Create 2 QnA related to the Design Pattern section, each with the following format where the first answer is correct and two other answers are wrong.
Question:
Answer:
Answer:
Answer:
3. Email the QnAs to dean@ituniversity.us
We offer a fun way to share your experience and be rewarded. You create a puzzle - quiz with a good question and several answers, one correct and several wrong ones. The question as well as answers can include text, links, video. This is your creation, completely up to your taste, humor, and of course your knowledge. If there is an existing quiz above, you need first to solve the puzzles and evaluate the quality (at the bottom of every quiz). After finishing the existing quiz you will be able to create your own. The best puzzles will be rewarded!
We invite you to create your own questions and answers (QnA) to increase your rank and win the Top Creativity Prize!