From: malak@access5.digex.net (Michael Malak)
Subject: Re: Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools)
Date: 1996/11/20
Date: 1996-11-20T00:00:00+00:00 [thread overview]
Message-ID: <56v4kc$89k@access5.digex.net> (raw)
In-Reply-To: rmartin-2011960223130001@vh1-036.wwa.com
In article <rmartin-2011960223130001@vh1-036.wwa.com>,
Robert C. Martin <rmartin@oma.com> wrote:
>
>Sure. Imagine a program that trasmits files between computers using
>modems. That program could deal with lots of different kinds of modems in
>several different ways. It could use a switch statement every time it needed
>to interact with a modem, choosing the correct modem each time and executing
>the right code. Or it could create an abstract Modem class and then create
>derivative for each type of modem.
>
> [snip]
>
>This is an architectural choice; and it is based upon which kind of change
>is more likely. If it is more likely that new functions will be added to
>existing modems, then the switch statement is probably the better choice.
>If it is more likely that new kinds of modems will be added, then the class
>structure is probably better.
THANK YOU! for confirming my conjecture. I posted this idea a few
weeks ago on comp.lang.c++.moderated to see if it was valid, and I
got blasted.
Response 1: Use templates
My unspoken response: I still have to write a bunch of functions
for every new method I wish to implement
Response 2: Arthur Reil's book says you're in danger of creating a
"God" class
My unspoken response: none, since I don't have the book
Response 3: This is the Visitor pattern; buy the Gamma book
My unspoken response: Yes, I have the Gamma book, and yes, I was
familiar with the Visitor pattern, but the Visitor pattern
looked too complicated to achieve what I wanted. As "bad"
as "switch/case" is, it appears to minimize the complexity
in this situation.
I was just a meek C++ student back then, so I didn't post any responses.
I put those bad old thoughts of "switch/case" out of my mind.
If you are interested in seeing the thread, search for this message
ID in DejaNews: <54titl$imt@netlab.cs.rpi.edu>
--
Michael Malak Home: malak@access.digex.net
Washington, DC Work: malak@notes.sonix.com
next prev parent reply other threads:[~1996-11-20 0:00 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-11-06 0:00 Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Dong Oh Kim
1996-11-06 0:00 ` Paul_Gover
1996-11-06 0:00 ` Alan Lovejoy
1996-11-07 0:00 ` Piercarlo Grandi
1996-11-10 0:00 ` drs
1996-11-12 0:00 ` Piercarlo Grandi
1996-11-10 0:00 ` Vlastimil Adamovsky
1996-11-11 0:00 ` Piercarlo Grandi
1996-11-11 0:00 ` Anthony Menio
1996-11-18 0:00 ` Piercarlo Grandi
1996-11-20 0:00 ` Anthony Menio
1996-11-27 0:00 ` Piercarlo Grandi
1996-11-12 0:00 ` Anthony Menio
1996-11-18 0:00 ` Piercarlo Grandi
1996-11-19 0:00 ` Anthony Menio
1996-11-27 0:00 ` Piercarlo Grandi
1996-11-11 0:00 ` Daniel Drasin
1996-11-12 0:00 ` Anthony Menio
1996-11-08 0:00 ` Paul_Gover
1996-11-08 0:00 ` Ell
1996-11-08 0:00 ` Alan Lovejoy
1996-11-13 0:00 ` Ell
1996-11-08 0:00 ` Alan Lovejoy
[not found] ` <6KZQfjK-3RB@herold.franken.de>
1996-11-10 0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Chris
1996-11-10 0:00 ` Vlastimil Adamovsky
1996-11-11 0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Bill Gooch
1996-11-12 0:00 ` Alan Lovejoy
1996-11-13 0:00 ` Nick Thurn
1996-11-13 0:00 ` Ell
1996-11-14 0:00 ` Bill Gooch
1996-11-19 0:00 ` Tim Ottinger
1996-11-12 0:00 ` Jan Steinman
1996-11-12 0:00 ` Alan Lovejoy
1996-11-13 0:00 ` Nick Thurn
1996-11-13 0:00 ` Alan Lovejoy
1996-11-14 0:00 ` Nick Thurn
1996-11-10 0:00 ` vlad
1996-11-12 0:00 ` Robert C. Martin
1996-11-12 0:00 ` Alan Lovejoy
1996-11-14 0:00 ` David N. Smith
1996-11-14 0:00 ` Bill Gooch
1996-11-20 0:00 ` Robert C. Martin
1996-11-20 0:00 ` Michael Malak [this message]
1996-11-20 0:00 ` Robert Dewar
1996-11-20 0:00 ` Robert Dewar
1996-11-26 0:00 ` Tucker Taft
1996-12-03 0:00 ` Robert C. Martin
1996-12-08 0:00 ` Tucker Taft
1996-11-06 0:00 ` Jan Steinman
1996-11-07 0:00 ` Paul_Gover
1996-11-12 0:00 ` Robert C. Martin
1996-11-12 0:00 ` Alan Lovejoy
1996-11-12 0:00 ` Snowball
1996-11-15 0:00 ` Soren Skogstad Nielsen
1996-11-28 0:00 ` Piercarlo Grandi
1996-11-28 0:00 ` Piercarlo Grandi
1996-11-06 0:00 ` Snowball
1996-11-13 0:00 ` Peter Pflaum
1996-11-13 0:00 ` David N. Smith
1996-11-07 0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Joachim Durchholz
1996-11-08 0:00 ` Richard A. O'Keefe
1996-11-09 0:00 ` Piercarlo Grandi
1996-11-13 0:00 ` Richard A. O'Keefe
1996-11-27 0:00 ` Piercarlo Grandi
1996-11-08 0:00 ` Jon S Anthony
1996-11-08 0:00 ` Nick Thurn
1996-11-08 0:00 ` Alan Lovejoy
1996-11-11 0:00 ` Nick Thurn
1996-11-11 0:00 ` Paul_Gover
1996-11-11 0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) David N. Smith
1996-11-12 0:00 ` Anthony Menio
1996-11-11 0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Anthony Menio
1996-11-08 0:00 ` Joachim Durchholz
1996-11-12 0:00 ` Alaric B. Williams
1996-11-13 0:00 ` Richard A. O'Keefe
1996-11-08 0:00 ` Alan Lovejoy
1996-11-11 0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE tools) Cesar A. Gonzalez Perez
1996-11-12 0:00 ` Interesting but sensitive topic to discuss (HELP: - OOP and CASE t Joachim Durchholz
1996-11-20 0:00 ` Piercarlo Grandi
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox