File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes Custom business types?? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "Custom business types??" Watch "Custom business types??" New topic

Custom business types??

Alexander Gunnerhell

Joined: Mar 12, 2003
Posts: 18
I'm thinking of implementing custom business types for attributes belonging to a flight entity (flightnumber, price etc).
Admittedly, at present, constraints on these types are not needed/possible since the only types related to flight that is inputted in the GUI is origin and destination. But none of these types has any constraints specified in the assignment description. The constraints cannot be deduced by looking at a database dump in my opinion.
However, my rationale is to suport future enchancements by a small type framework.
The idea behind this framework is that both the businesslogic tier in the client and the GUI-model will share these types so that future constraints on these types could be implemented in one place. Furthermore it "feels" wrong to expose for example DataInfo[] as the returntype from a business method.
My problem now is that several custom types would basically be a kind of String (or Float or Integer) with support for future additional constraints. However String is final so I cannot use String by inheritance.
Another solution is to create an abstract StringType which implements all the interfaces that String implements. The StringType then delegates all the necessary methods to an internal String attribute. Furthermore the StringType would also have an abstract private method that would validate the argument to it's constructor before creating an instance of StringType.
Now, to create the custom business type FlightNumber one would inherit from StringType and implement the abstract validate method in FlightNumber.
Q1) do you consider this as a design supporting the requirements in the assignment?
Q2) Is this an ok way of supporting custom business types in a system in general? If not could you point me to an alternative approach?
Q3) Why are all the wrapper types final in Java? It forces me into a much more code intensive approach that also seems a bit awkward.
Mark Spritzler

Joined: Feb 05, 2001
Posts: 17276

Alexander. Here is my typical answer. Why add this complexity, when it isn't in the requirements?
The business methods returning DataInfo[] is quite alright. You can have a Facade class for the client to hide the implementation of these database methods.

Perfect World Programming, LLC - iOS Apps
How to Ask Questions the Smart Way FAQ
Alexander Gunnerhell

Joined: Mar 12, 2003
Posts: 18
yes you're right, it's hard justifying this approach given the requirements. I guess I just hoped that someone should state the opposite so I had a reason to try this idea out.
The custom types design went in the trash bin yesterday .
I agree. Here's the link:
subject: Custom business types??
It's not a secret anymore!