Ryan McClain wrote:Say I have a couple of classes that implement a particular interface. Now say that later, there is one method in that interface that I don't need anymore and thus need to delete.
Then it will cause a ripple-effect to the classes that implemented that interface because the implementation won't be correct anymore.
How do I avoid/deal with this?
That isn't correct. The rule is that for a class to correctly implement an interface, it must provide implementations for all of the methods declared by the interface. (Or if it doesn't, it must be declared "abstract", but let's leave that aside for now because it isn't related to your question.)
You appear to be assuming that for a class to correctly implement an interface, it must
not provide implementations for methods
not declared by the interface. But this is not correct -- there is no such rule. Now consider your example -- your interface no longer declares the X method, but your classes still contain implementations of that method. This isn't a problem at all, since it doesn't break any rules. So you don't need to deal with it.