Java Binding (Was: [ZOOM] Some 1.4 options questions)

Mike Taylor mike at
Fri Feb 6 10:51:10 CET 2004

> Date: Fri, 6 Feb 2004 17:26:39 +1100
> From: Alan Kent <ajk at>
> In the worst case I can rename the API I am working on and not use
> the word "ZOOM" in it. Then if the ZOOM binding does settle (I like
> the idea of interfaces too), I can build a wrapper around what I
> have.

Yes, that approach would work; though it's never really satisfying to
write a layer of code, however thing, that does nothing but forward
method invocations :-)

> To get a pure interfaces approach however you need to eliminate all
> constructors. Eg: start from a "Zoom" interface with a method such as
>     interface Zoom
>     {
> 	Connection establishConnection(String host, int port);
>     }

Yes indeed.  I ran into a lot of problems of this kind when I was
working on my first cut at a Java ZOOM API back at the start of 2002.
If you've not already read what I had to say about the, you may wish
to glance at the aborted attempt at
and the commentaries at

Two years older and wiser, I realise that the solutions (I should say,
workarounds) for most of these problems are to use factory classes and
have them instantiate the subordinate classes, thereby eliminating
constructors.  Which I'm sure you three Java-oriented guys already

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor  <mike at>
)_v__/\  "Value Exchange as the predominant business model in the
	 Information Age, is based on the concept of exchanging
	 profit generating value with your customers and prospects,
	 put differently it basically conceptualises the process of
	 making customer intimacy the thrust of your business model"
	 -- Executive Management (incorporating Executive Strategy
	 for Corporate Leaders) magazine, Spring 1996.

Listen to my wife's new CD of kids' music, _Child's Play_, at

More information about the ZOOM mailing list