Originally posted by Yogesh Deshmukh:
I am basically not able to understand the significance of patterns.
Please explain
Hi,
This is a philosophical question and a good one. Most of us in the software industry have the feeling when we do many things that we have done them before. We tried to solve this problem in the past with code reuse libraries. While these helped to a certain extent, they did not solve the problem.
The reason why code libraries can't solve all the reuse problems is that they are written in a particular language. If I want
Java code and my reuse library has only FORTRAN, I'm probably not going to be a successful reuser!
When we have the feeling that we have "done it before" -- we are remembering the "essence" of the thing we did. The exact implementation may vary from one time to another. When an expert solves a problem, she doesn't say to herself, "Ah, I can recall the exact code I wrote before and simply reuse it!" Instead, she says, "Ah, I remember this. I simply added another element to the end of the array and shifted everything to the left." Her remembering will allow her to do that in any language she needs.
Patterns capature the essence of solutions, not the details. As Christopher Alexander said in his book about architectural patterns: You can implement them a million different ways without ever doing it the same way twice.
Now, if an expert shares a good solution with me, documented as a pattern, I am free to implement that in any language, in any environment. I have the idea in my head and I'm a little less of a novice and a little more of an expert.
Does that help???
To see a lot of patterns, look at the Pattern Alamanac -- maybe win a free one this week!
Linda
------------------
Linda Rising
Author of
The Pattern Almanac 2000