The Universal Design Pattern

Today I thought I’d talk about a neat design pattern that doesn’t seem to get much love: the Properties Pattern. In its fullest form it’s also sometimes called the Prototype Pattern.

People use this pattern all over the place, and I’ll give you a nice set of real-life examples in a little bit. It’s a design pattern that’s useful in every programming language, and as we’ll see shortly, it’s also pretty darn useful as a general-purpose persistence strategy.

But even though this pattern is near-universal, people don’t talk about it very often. I think this is because while it’s remarkably flexible and adaptable, the Properties Pattern has a reputation for not being “real” design or “real” modeling. In fact it’s often viewed as a something of a shameful cheat, particularly by overly-zealous proponents of object-oriented design (in language domains) or relational design (in database domains.) These well-meaning folks tend to write off the Properties Pattern as “just name/value pairs” – a quick hack that will just get you into trouble down the road.

I hope to offer a different and richer perspective here. With luck, this article might even help begin the process making the Properties Pattern somewhat fashionable again. Time will tell.

Continue reading over at dzone...

Leave a Reply