Какое хорошее название для класса фасада?

небольшой фон: мы создаем библиотеку / структуру для работы с научными моделями. У нас есть интерфейс Model который определяет операции, которые должна реализовать модель, что довольно минимально. То есть:Model интерфейс определяет контракт модели С точки зрения реализации модели.

платформа добавляет кучу других функций вокруг модели, но прямо сейчас клиентский код должен получить доступ к этой функциональности используя кучу других классов, таких как ModelInfo, ModelHost, ModelInstance, etc.

в нашем приложении, которое использует эту структуру, мы не хотим на самом деле иметь дело со всем этим механизмом запуска моделей и т. д. Поэтому мы решили использовать фасад шаблон чтобы обернуть функциональность фреймворка в простой в использовании объект. (Мы уже применили этот шаблон к другим частям структуры, с хорошим успехом.)

вот вопрос: учитывая, что мы уже есть интерфейс Model, что было бы хорошим именем для класса façade? на Model интерфейс-это контракт между рамками и модель реализации, и новый класс определит контракт между платформой и клиентское приложение.

или, в более общем плане: когда у нас есть абстракция, предоставляемая библиотекой или фреймворком, как мы можем назвать "две стороны" абстракции, чтобы ясно определите интерфейсы" поставщик "и" потребитель " для абстракции?

(если это имеет значение, для этого проекта мы используем Java 6.)

4 ответов


Я знаю, это кажется банальным, но... вы рассматривали возможность использования "ModelFacade " как имя класса для класса фасада? Я думаю, с документацией, которая указывает, что интерфейс уже был назван Model, это кажется относительно простым и очень ясно, какой шаблон дизайна вы используете.


Как насчет * поставщика и * потребителя? Я думаю, ты сам сказал это в своем вопросе. Возможно, * производитель и * потребитель лучше подходят?


в обсуждениях внутри нашей команды был предложен другой вариант: мы можем переименовать существующий Model интерфейс к чему-то еще, и просто вызовите новый фасад Model. На самом деле, их обоих можно назвать Model прямо сейчас, потому что они будут жить в отдельных пакетах. (Хотя я не поклонник классов с одинаковыми именами в разных пространствах имен.)


PureMVC использует синглтон с именем ApplicationFacade и регистрирует все модели с помощью таких методов, как registerProxy, которые определены в IFacade