You'd be doing the same thing under the hood more or less, but this seems like a case where the Factory pattern could aid in maintaining the abstraction.