Apr 23, 2009 in Engineering, Java, JavaUsage, Software
- — Inheritance from anything (including abstract)
should be a function of the business model.
- — If a class does not _really_ inherit from
an abstract, one should not use it.
- — Use interface to avoid the problem of multiple
- — Use interface to improve modularity.. if one
uses an abstract class and the class changes,
it may break subclasses.
(not method signatures but logic/code.. changing
method signatures is a problem for both abstract
- — Use interfaces when some part of the design
will change frequently.
- — Interface for plug-in architectures – like
the strategy pattern.
- — Use abstract class to provide basic services
for derived classes (event, message handling)
- — In favor of abstract class:
- — interfaces may be more difficult to read in
- — interfaces are somewhat slower due to