A design problem I met again and again.
一首诗
newptcai at gmail.com
Fri Apr 3 02:25:42 EDT 2009
Consolidate existing functions?
I've thought about it.
For example, I have two functions:
#=========================
def startXXX(id):
pass
def startYYY(id):
pass
#=========================
I could turn it into one:
#=========================
def start(type, id):
if(type == "XXX"):
pass
else if(type == "YYY"):
pass
#=========================
But isn't the first style more clear for my code's user?
That's one reason why my interfaces grow fast.
On Apr 3, 1:51 am, Carl Banks <pavlovevide... at gmail.com> wrote:
> On Apr 2, 8:02 am, 一首诗 <newpt... at gmail.com> wrote:
>
> > You get it. Sometimes I feel that my head is trained to work in a
> > procedural way. I use a big class just as a container of functions.
>
> > About the "data-based" approach, what if these functions all shares a
> > little data, e.g. a socket, but nothing else?
>
> Then perhaps your problem is that you are too loose with the
> interface. Do you write new functions that are very similar to
> existing functions all the time? Perhaps you should consolidate, or
> think about how existing functions could do the job.
>
> Or perhaps you don't have a problem. There's nothing wrong with large
> classes per se, it's just a red flag. If you have all these functions
> that really all operate on only one piece of data, and really all do
> different things, then a large class is fine.
>
> Carl Banks
More information about the Python-list
mailing list