6.4 Who Is the Customer?Usually, when a Java developer talks about extension, he's referring to ways that programmers can extend his application. That's only part of the total equation, though. Building an extensible API only lets your customer adapt your solution before build time. For some applications, the most useful extension happens after deployment! Your extension strategies for different customers will be different (Table 6-2). Understanding your options will allow you to accept an acceptable risk for your investment.
|All||No extension||Low startup costSimplicity||Poor flexibilityExpensive extension|
|Developer||Subclassing||Few lines of codeShared behavior||Reduced flexibilityCode time only Can complicate designs|
|Developer||Interfaces||High flexibility||More lines of codeCode time only|
|Admin||Plug-in||Best flexibilityPost-deploy timeAllows customization||Expensive to code|
|Admin||Standards + configuration||Allows replacementPost-deploy time||Limits choice|