When reading the section on the Interface Segregation Principle it occurred to me that the code section could give a stronger and clearer example. The principle is "Clients should not be forced to depend upon interfaces that they do not use." Even knowing about the existence is a dependency, and it can be avoided in this case. There is no reason for the client code to even know that animationModule exists or that DOMTraverser cares about it.
(This sort of thing happens frequently in practice; e.g. if animationModule is added to a new version of DOMTraverser, old client code will not know about it, and making it optional in this way avoids having to update those calls.)
Hello. This is a useful resource.
When reading the section on the Interface Segregation Principle it occurred to me that the code section could give a stronger and clearer example. The principle is "Clients should not be forced to depend upon interfaces that they do not use." Even knowing about the existence is a dependency, and it can be avoided in this case. There is no reason for the client code to even know that animationModule exists or that DOMTraverser cares about it.
(This sort of thing happens frequently in practice; e.g. if animationModule is added to a new version of DOMTraverser, old client code will not know about it, and making it optional in this way avoids having to update those calls.)