What's a good name for a façade class?
I know this seems trite, but... have you considered using "ModelFacade
" as the class name for the facade class? I think with documentation that indicates that the interface was already named Model
, it seems relatively straightforward, and makes it very clear which design pattern you're using.
How about *Provider and *Consumer? I think you said it yourself in your question. Perhaps *Producer and *Consumer is a better match?
In discussions within our team, another option has been proposed: we can rename the existing Model
interface to something else, and just call the new façade Model
. In fact, they can both be called Model
right now, because they will live in separate packages. (Although I'm not a fan of identically-named classes in different namespaces.)