Let's say I'm modeling a workforce of workaholics. We have Bob, who is both a plumber and a carpenter by trade. There's Jane, who is a teacher. And finally Jack, the detective, bowling-alley entrepreneur, and mad scientist.
Each position or job type can have properties or methods specific to only that job. For example, a plumber will have methods like fixLeakingSink() and properties like exposedButtCrack that a teacher will not have. But, there will be some shared properties and methods.
If my superclass is a Worker, and I am avoiding multiple inheritance, what is the best-practice way to model a scenario like this? I originally considered using the Decorator design pattern, but I'm not sure this is the correct application for it. (If knowing what language this will be implemented in is helpful, or you want to include code snippets in your explanation, it's PHP5.)