Design Patterns

Software Design Fundamentals

Software Design Fundamentals:

Let us explain and understand the following Design Terms:

1. Design Principle

2. Design Pattern

3. Design Characteristics

4. Design Paradigm

5. Design Pattern Language

6. Design Standard

7. Best Practice

Design Principle:

SOA Design Patterns: Listen to the Experts

Here is a collection of Audio Files for free download. Podcast by Indutry experts on SOA Design and SOA Concepts. Listen to the Experts and Authors on the Subject. Hope you find it useful.

http://soaconcepts.com/?q=node/55

Why method calling through interfaces are slower than calling from abstract classes?

Service Contract Design Patterns: Decoupled Contract

How can a service express its capabilities independently of its implementation?

Problem

For a service to be positioned as an effective enterprise resource, it must be equipped with a technical contract that exists independently from its implementation yet still in alignment with other services.

Solution
The service contract is physically decoupled from its implementation.

Application
A service¡¦s technical interface is physically separated and subject to relevant service-orientation design principles.
Impacts

Factory Method Explained

Intent
Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. [GoF, p107]
Defining a "virtual" constructor.
The new operator considered harmful.

Problem
A framework needs to standardize the architectural for a range of applications, but allow for individual applications to define their own domain objects and provide for their instantiation.

Discription

Dealing with Changes: Using Functional Decomposition

Using modularity to isolate variation

Example 1-1. Using Modularity to Contain Variation
function: display shape
input: type of shape, description of shape
action:
switch (type of shape)
case square: put display function for square here
case circle: put display function for circle here

Problems with modularity in a functional decomposition approach

Then, when I receive a requirement to be able to display a new type of shapea triangle, for instanceI only need to change this module (hopefully!).

Introducing SOA Design Patterns

Originally inspired by techniques used to design buildings and cities, and popularized by the Gang of Four during the mainstream emergence of object-orientation, design patterns have seen us through the various shifts in architecture, technology, and, of course, design. Pattern catalogs have periodically emerged, one building on the other, and each revealing a set of problem-solving techniques and providing invaluable insights as to how and when those techniques should be used to help us attain our design goals.

Some more Design Tips

Abstraction is your friend: A software design is a complex thing, especially, if you do not use abstraction to good effect. The design should be done at various levels of abstraction. At higher levels, you visualize the system as a small number of big components while abstracting away the details of what is inside each component. Once you have a good definition of what each of those components represent and how they interact with each other, you can move to the next lower level of abstraction.

Design Patterns: Articles from MSDN

If you are an experienced developer and always on a look out for ways of smarter development, sure you are not to miss on Design Patterns.

Patterns are everywhere, in our day to day life. Its there in the problems we face and the solutions we come up with.. if you can just insightfully recognize those patterns, life would be much easier..

Here is a good collection of Articles on Design Patterns from MSDN...

Explore it..
http://msdn.microsoft.com/en-us/magazine/cc159273.aspx