#c
#c
Вопрос:
У меня есть производный класс, который не имеет переменных, а просто адаптирует интерфейс к другому классу — есть ли специальное название для такого класса в C ?
Комментарии:
1. Несколько не связанный с вашим вопросом — если вы меняете / адаптируете интерфейс, деривация может оказаться неподходящей.
2. Частное наследование — это нормально; публичное — нет.
Ответ №1:
Он «адаптирует» интерфейс? Предполагая, что это означает, что он демонстрирует то же поведение, но с другими вызовами методов (или, возможно, небольшими изменениями в поведении), тогда мы склонны называть это адаптером. Это обычный шаблон проектирования.
Связанный с ним шаблон Facade, который является адаптером, упрощающим API. Например, он может предоставлять разумные параметры по умолчанию или абстрагировать часть необходимого потока вызовов в модуль, который может быть вызван другим кодом.
Комментарии:
1. Я сам не смог бы сказать это лучше. 🙂
2. Вполне возможно, что это адаптер, он все еще может быть адаптером, даже если у него есть переменные-члены. Я не думаю, что адаптер или фасад отражают обе характеристики, которые задает вопрос. Но я не могу придумать термин, который делает это, поэтому я действительно не могу жаловаться.
Ответ №2:
Rob прав, то, что вы описываете, соответствует шаблону проектирования адаптера.
Если он «адаптирует» более одного класса или пакета за кулисами, это также называется фасадом.
Комментарии:
1. Похоже, это ничего не добавляет.
2. Snarfblam: похоже, Роб добавил свой абзац о Facade после моего поста.
3. Это верно; или, скорее, когда я редактировал, чтобы добавить абзац о Facade, появился ваш пост. Я все равно отправил правку, вреда не было.