I'm writing an iPhone application and I find that there are three controllers in the application that have very similar functionality. They are similar enough that it doesn't make sense to separate them into three separate classes, so I have a "mode" property that clients of the class use to specify how the controller should behave in certain situations. But again, maybe 95% of the functionality is identical. There are three separate modes with only minor differences in behavior.
This feels messy to me. Is there a better pattern for this?