Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Struts - A MVC web framework
Tomcat - JSP/Servlet container
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
JSP - A mailing list about Java Server Pages specification and reference
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
How to realize extendable data objects?

How to realize extendable data objects?

2003-09-23       - By tetsuo

 Back
Reply:     1     2     3     4  

PavanKumar Keely wrote:

> Many modules in the application will use this Material
> object. Making this Material Object an instance of
> Hashtable/HashMap can solve your problem. Because you
> can just add one more attribute to this as simple as
> that and use that attribute in the new module. But one
> problem with this approach is we need to stick to the
> standard key names throughout the application. But
> avoid hardcoding the key name and use some
> initialization file, which will be initiated at the
> start of the server. This solution is on the lines of
> EJB Design pattern "DTO using HashMap".
>
> One more way of achieving extendibility is using XML
> data object. Whenever you create Material object that
> should form the data in the XML. But one problem with
> this approach is building XML and parsing the XML.

It's a good solution, but you lose compile-time checking, since the
class' interface has to use generic types. In some cases it isn't a big
deal, and this solution is simple. You could also use interfaces or
static imports (JDK1.5 feature) to keep attribute names. At least, it
would avoid misspelling errors be ignored by the compiler.

But some times you want to keep type-safe references. If each module
uses only a specific set of methods/attributes/whatever, you can specify
an interface for each module, develop the concrete class implementing
those interfaces and instantiate it with an Abstract Factory. The
factory would look for the name of the concrete class in a config file,
and the .class file would be separated (but visible) from the modules'
.jar files.

Thus, you can update the implementation of the concrete class without
changing the existing modules. However, you have to keep the Material
class implementation updated, with support for all modules you install.

If what you wanted was not to change the class, it may not satisfy your
requirements, anyway. Well, it was just an suggestion.

Tetsuo

====================================================================
Companion Site: http://www.corej2eepatterns.com
J2EE BluePrints: http://java.sun.com/blueprints/corej2eepatterns
List Archive: http://archives.java.sun.com/archives/j2eepatterns-interest.html
Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to listserv@(protected)



©2008 junlu.com - Jax Systems, LLC, U.S.A.