Good coding practice is to re-use code. Classes and Objects (OOP in general makes this easier).
If you have 3 classes all with the same functions (That is not the constructor) doing the same thing, you might want to look at your Class structure. That function should then be implemented in a Parent class or in a static collection of functions.
If you have 3 functions doing 3 different things, it's a different story. Less code is always good. See Link:
http://www.folklore.org/StoryView.py?project=Macintosh&story=Negative_2000_Lines_Of_Code.txt
And further more, these general coding practices apply to every class, be it Controller or Model. If you're using OOP, you should be re-using your code (re-use, re-fuse, recycle... yes? no? whatever), I don't think I need to explain the benefit of re-using your code, (Things like debugging, editing, changing the flow of a function/method, keeping your code simple and clean, all becomes easier.. my bad).
The simplest things are the most beautiful...
... in code at least anyway.