Non Published Public Interfaces Are Refactorable

Most code in the world is for internal development efforts. Interfaces in this environment are all refactorable for the same reason code below the interfaces is refactorable. There is no reason not to improve interfaces in an environment where you have control and ProgrammerTests.

If you publish PublishedInterfaces to clients outside your shop, then you need to be much more careful about changing the interfaces.


This is entirely too much and unnecessary work for the vast majority of software. It's not even close to the simplest thing. For public published interfaces you might be forced to do this, but it's not necessary for most other software.

"public published interfaces" is the same as "interfaces that have external dependencies". I'm only talking about "public published interfaces". If the dependencies are internal (to you or your organization), refactor at will.

Every interface has external dependencies or it wouldn't exist. The question is one of willingness to change.

By "external dependencies" I mean external to the code you own and are allowed to modify.

The idea of external dependencies is vague to me, because everything is external to an interface. Someone created the public/published idea and that seems more clear.


EditText of this page (last edited October 5, 2003) or FindPage with title or text search