Ivan Sergio Borgonovo wrote:
At least in my experience a "what if they were 3" makes a huge difference to avoid 2 just a special case of 1. But anyway how could you plan or even think an API could be useful knowing just 2 use-case? But then... when you cut and paste more than once... you need an API ;) 3 is the magic number!
3 is ideal. Two markedly different implementations can also suffice, for certain definitions of "markedly". (DBTNG was good with MySQL and Postgres, with an eye toward Oracle. It's better with SQLite, which forced some heavy rethinking that ended up making a much cleaner implementation without changing the API.)
And three cheers for Crell's Law and Eaton's Corollary.
I would extend that cheers further than just for the Law and the Corollary.
BTW Ernie that`s called delegation and everybody know that delegation is the solution to all CS problems.
There is no problem in computer science that cannot be solved by adding another layer of indirection (except micro-performance). --Larry Garfield