Blogs

   Shalloway’s Law and Shalloway’s Principle

In my earlier post I mentioned these. OK, I know it was a tease, but now that someone has asked for what they are I figured I’d better fess up.

A couple of years ago I decided, hey, I’m CEO of a successful company, co-author of a successful book (Design Patterns Explained: A New Perspective on Object-Oriented Design), … I ought to have something named after me.

Anyway, here goes:

Shalloway’s Law:

“When N things need to change and N>1, Shalloway will find at most N-1 of these things.”

Hey, I didn’t say it was complimentary. It’s a law! I have to follow it. That’s the problem. BTW: They didn’t ask me about gravity either when I was born! I really would like to break that law at times too! Laughing

So I came up with Shalloway’s Principle:

“Avoid situations where Shalloway’s Law applies”

What situations are these? When N > 1. In other words, avoid redundancy. But when you can’t, make sure you can find everything with a tool or something. For example, I may have redundancy in my interfaces. But I also have a cool “to do list generator” (some people call it a compiler) that when I change a method’s interface it tells me what I need to update. Better not to have redundancy at all, but if you do, make sure Shalloway’s law does not apply.

Alan Shalloway

Technorati Tags: