производный класс c без переменных

#c

#c

Вопрос:

У меня есть производный класс, который не имеет переменных, а просто адаптирует интерфейс к другому классу — есть ли специальное название для такого класса в C ?

Комментарии:

1. Несколько не связанный с вашим вопросом — если вы меняете / адаптируете интерфейс, деривация может оказаться неподходящей.

2. Частное наследование — это нормально; публичное — нет.

Ответ №1:

Он «адаптирует» интерфейс? Предполагая, что это означает, что он демонстрирует то же поведение, но с другими вызовами методов (или, возможно, небольшими изменениями в поведении), тогда мы склонны называть это адаптером. Это обычный шаблон проектирования.

Связанный с ним шаблон Facade, который является адаптером, упрощающим API. Например, он может предоставлять разумные параметры по умолчанию или абстрагировать часть необходимого потока вызовов в модуль, который может быть вызван другим кодом.

Комментарии:

1. Я сам не смог бы сказать это лучше. 🙂

2. Вполне возможно, что это адаптер, он все еще может быть адаптером, даже если у него есть переменные-члены. Я не думаю, что адаптер или фасад отражают обе характеристики, которые задает вопрос. Но я не могу придумать термин, который делает это, поэтому я действительно не могу жаловаться.

Ответ №2:

Rob прав, то, что вы описываете, соответствует шаблону проектирования адаптера.

Если он «адаптирует» более одного класса или пакета за кулисами, это также называется фасадом.

Комментарии:

1. Похоже, это ничего не добавляет.

2. Snarfblam: похоже, Роб добавил свой абзац о Facade после моего поста.

3. Это верно; или, скорее, когда я редактировал, чтобы добавить абзац о Facade, появился ваш пост. Я все равно отправил правку, вреда не было.