Elwin Estle wrote:
--- On Wed, 1/26/11, Alan Gauld <alan.ga...@btinternet.com> wrote:

From: Alan Gauld <alan.ga...@btinternet.com>
Subject: Re: [Tutor] class question
To: tutor@python.org
Date: Wednesday, January 26, 2011, 1:10 PM
Is this really a series of different types of casting or a single Workpiece 
going through a sequence of Actions
each Action having a set of quality data associated?

If so it may be that you have a single Workpiece class and a relatively small 
heirarchy of Actions.

No, there are multiple castings, anywhere from smallish parts you can hold in 
the palm of your hand, up to engine blocks weighing nearly 2 tons.

Then each such casting has its own set of actions and chain of classes.

There is a process that goes from egg to chick to hen to KFC Chicken Nuggets, but you wouldn't write a single class to model all of those things. You would write a separate class for each distinct stage of the process, and write a process that replaces each data item with the next one in the series.

I think you are focused too heavily on the fact that it's the same lump of metal all the way through the pipeline. That's the least important part of the design -- you can do that with a simple record:

class Lump:
    def __init__(self, id, kind):
        self.id = id
        self.obj = kind()

lumps = [
    Lump(1, EngineBlockCasting),
    Lump(2, EngineBlockCasting),
    Lump(3, WidgetCasting),
    Lump(4, MiniCasting),
    ... ]

and then later on:

lumps[1].obj = EngineBlockWithHolesDrilled()

Although of course you will write functions or methods to move from one class to another, e.g. drill_holes(lumps, 1), rather than do it all by hand.



--
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to