[KLUG Programming] Proper OO Technique Question
Adam Williams
programming@kalamazoolinux.org
Fri, 8 Aug 2003 09:59:41 -0400 (EDT)
I've designed a new little project for myself, hopefully one that won't
become obselete the minute I start working on it (like my XML-RPC2LPD
gateway, then RedHat 9 ships with CUPS which supports IPP, Grrrrr...)
Anywho... (it takes me awhile to get to the actual question)
1. I've got an OpenGroupware server. And via
Web-DAV/XML-RPC/ZideStore/blahblah I can easily walk around all the
information inside the application. Very nice. I've already tested this.
2. All there is is a Web interface. An Evolution plugin is forthcoming
but that will only handle Contacts/Tasks/Calendar. It won't support the
concept of Projects at all. But Projects is what I *REALLY* need. The
oGo server has nice project management features. Project management can't
be added to Evo without fork-lift-strength-hackers, lots of time, and
cooperation from Ximian. I'm not one, don't have it, and why would they
listen to me.
So I want to create a GNOME interface to oGo projects.
I can create the a wigdet in GLADE, that is like falling off a log.
I'll have to learn how to melt the widget into a BonoboUI component, but
that looks like a fun rainy Saturday afternoon project.
First I want to create a clean way to communicate with the server. All
that Web-DAV/XML-RPC code is just ugly, and someone will write better code
than me - so optimally I want to be able to yank my comm code someday and
use someone else's. (Part of the Evo Plugin project is building a
standard C-oGo library that has things like offline-object-store, etc...).
So I'm wrapping all the comm calls into a set of CORBA objects, makes a
nice clean division and multiple instance of the client can talk IIOP to
the objects, etc... I've done this before on a smaller scale.
So I've got objects like oGoProject, oGoContact, oGoEnterprise, etc...
But one question I've always had is what is the proper OO way to enumerate
the available projects, contacts, etc...
Do you create a oGoProjectList object? Thats what I've always done in the
past, but it seems kind of lame. Is there a cannonical solution to where
you "start" in an OO model?