Path: utzoo!attcan!uunet!fernwood!decwrl!sdd.hp.com!uakari.primate.wisc.edu!uflorida!travis!tom From: tom@ssd.csd.harris.com (Tom Horsley) Newsgroups: comp.object Subject: Re: object-oriented design is *hard*! Message-ID: Date: 6 Sep 90 11:23:48 GMT References: <912@zinn.MV.COM> Sender: news@travis.csd.harris.com Organization: Harris Computer Systems Division Lines: 31 Yep, OOD is hard. I have also recently started trying to use OOD both to learn OOD and to learn C++ and a critical problem does turn out to be picking the right classes (just like the best OOD books say). I selected a fairly small program to start with that I figured would be just about the right size for a learning experience. I am writing a C++ version of 'diff'. What I have so far works pretty well, but I am already on my second round of re-writing the classes because I keep discovering that the classes I initially came up with work well for the limited taks of comparing lines in files, but with a little more abstraction, could serve as a much more general sort of sequence comparator. I will probably do a third round before I decide I am done, but then I will have a core set of classes that can be used in a program like 'diff', or a program like 'patch', or in a system like 'sccs' or 'rcs'. (Or, for that matter, in molecular biology). Finding the right classes is hard, but when you find them, you feel really good about the design. I think one of the major advantages of OOD is the level of confidence you, as a programmer, can gain when you just know you have picked good classes and the design is "right". No doubt, this feel gets harder and harder to achieve as you scale up the size project you are working on, time will tell :-). -- ====================================================================== domain: tahorsley@csd.harris.com USMail: Tom Horsley uucp: ...!uunet!hcx1!tahorsley 511 Kingbird Circle Delray Beach, FL 33444 +==== Censorship is the only form of Obscenity ======================+ | (Wait, I forgot government tobacco subsidies...) | +====================================================================+