Java applications have become steadily harder to understand and maintain in
recent years. Object-oriented programming has proven an effective way to
develop enterprise applications, but several recent trends are causing a
sharp increase in code complexity. One is the increasingly common use of the
Factory design pattern, abstracting away the object creation process (e.g.,
the creation of servlet objects by application servers, the use of Spring as
a general-purpose object factory, the use of JNDI, etc.) Another is the
increased use of the JavaBean pattern with reflection and anno... (more)