Archive for November 2008
Recently I’ve seen the inter-blog discussion by some PHP guys I don’t know which touches among other things the issue of design patterns. And when they define design patterns they use some canonical or less definitions which seem a bit fuzzy to me.
When I think of design patterns, I always think about patterns of design, thus to define them you first need to define both of them well. With design it’s pretty easy. So let’s talk about patterns.
Pattern, as you surely know, my dear friend, is nothing but a recurring event. But how would you detect recurring events? To do that you need first to detect events, which are no more than time objects. And detecting recurring objects requires memory and ability to compare, which in one word is “intelligence”. Now, knowing the known patterns is nothing but remembering them, which doesn’t require intelligence, while detection of them actually is their usage, since using patterns is already a pattern.
Therefore, design patterning is a way of making designing and observing the design to be more harmonious, or a way of saving designer’s and observer’s intelligence. However, it’s very simple to save intelligence by just not designing the creation. But bad design is nothing but just a very complex design. A design which is created unconsciously is actually a noise and is not harmonious. So using/creation of design patterns is an investment of intelligence in order to save it in the future.
And when not to use patterns then? Only when you:
1. Know to do it perfectly.
2. And you don’t really care if anyone would observe the done.
3. And you will never need to make a similar deed.
I know only one such a task: physiological dying.