Я изучаю шаблоны дизайна, и есть некоторые вещи, которые я не понимаю. Например, я часто сталкивался с идеей скрытия реализации для клиента.Скрытие реализации клиенту
Например, в отношении заводского шаблона я читал, что логика приложения не должна знать подклассы пользовательского интерфейса, даже при создании.
Я не понимаю, почему скрытие реализации для клиента является преимуществом. Единственная причина, по которой я могу думать, - это простота. В самом деле, я думаю, в этом случае клиент должен знать только интерфейс, а не различные подклассы, чтобы использовать объекты, тем самым делая все проще, поскольку вам не нужно знать всю реализацию подклассов. Я прав?
Однако, я думаю, может случиться так, что вам нужно вызвать конкретный метод подкласса, и в этом случае вы вынуждены использовать подкласс для вызова метода.
Сказав это, я хотел бы задать вам следующие вопросы:
- Что идея «прячась конкретных классов или скрытие реализации для клиента в виду? В чем преимущество? Это просто вопрос простоты и обслуживания?
Кроме того, я хотел бы, чтобы вы дали мне совет по книгам и онлайн-ресурсам (теория и практика) по разработке программного обеспечения. Действительно, есть несколько аспектов этого, которые мне непонятно. А именно независимые объекты и программирование для интерфейса.
Спасибо за вашу помощь
Похоже, это было бы лучше спросить здесь ... http://programmers.stackexchange.com/ – KornMuffin
@KornMuffin при обращении к другим сайтам часто бывает полезно указать, что [перекрестная публикация неодобрительно] (http: //meta.stackexchange.com/tags/cross-posting/info) – gnat
Подумайте о том, как управлять автомобилем.Все автомобили имеют более или менее стандартный интерфейс: ключ для разблокировки и запуска, управление, чтобы сказать, вперед или назад, управление для ускорения и управление для торможения. Теперь подумайте о том, сколько «конкретных реализаций» есть за этими интерфейсами? «Клиент» автомобиля, когда он работает, не должен знать, является ли это бензиновым/электрическим/гибридным двигателем или если двигатель охлаждается водой или воздухом и т. Д. Поскольку операторы используют одни и те же элементы управления, несмотря на различные реализации, автомобили взаимозаменяемы с операторами. – Fuhrmanator