Использование функций с одинаковым именем из разных классов; что это за узор?

Я хотел бы знать, что это за метод ООП, чтобы лучше понять, как его использовать и что он делает в более широком диапазоне приложений.

Я видел, как эта техника используется в нескольких программах. Тем не менее, я пытался исследовать это, и я нигде не нашел ни одной статьи, в которой бы упоминалось об этом.

в fileA.cpp, когда у меня есть эта функция-член класса A

   // an object of class B is instantiated in class B
   classB _classB

   void signup(int n){
        _classB.signup(n);
        // rest of the function
   };

то в файле B у нас есть эта функция-член класса B

   void signup(int n){
        // rest of function
   };

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

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

Yksisarvinen 30.05.2019 18:34

Существует метод, называемый перегрузкой функций, но я не думаю, что это то, что здесь происходит.

user10957435 30.05.2019 18:35

класс B наследует класс A или наоборот? Тег C надо убрать, вы говорите о классах

bruno 30.05.2019 18:36

Инкапсуляция в лучшем случае. Имена функций не имеют значения.

Hans Passant 30.05.2019 18:37

Если бы вы работали на Python, я бы назвал это утиной печатью. Если вы особенно хорошо разбираетесь в шаблонах, вы, вероятно, все еще можете назвать это утиной печатью. Но только с той информацией, которую вы нам дали, нет никакой связи между двумя функциями.

Silvio Mayolo 30.05.2019 18:42

На самом деле это не техника ООП. Вы можете назвать это фасадом, прокси-сервером или несколькими другими шаблонами в зависимости от Зачем, с которым вы это делаете, но в этом нет ничего особенного для объектно-ориентированного программирования.

Useless 30.05.2019 18:45

@SilvioMayolo Действительно ли это «печатать»?

Lightness Races in Orbit 30.05.2019 18:54

Вы можете назвать это паттерном «совпадение» или паттерном «это имя имеет смысл и здесь, и там». То есть нейминг — это не «прием», и у него нет имени.

molbdnilo 30.05.2019 20:49
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
8
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не знаю какого-либо конкретного названия того, что вы делаете, потому что это не шаблон и не что-то особенное/волшебное.

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

Но, опять же, это только я.

Другие термины (украденные из раздела комментариев) могут включать фасад или прокси.

Когда вы начинаете делать такие вещи, как скрытие реализаций или обертывание символов для передачи через границы ABI, вы можете использовать такие методы, как сортировка, или шаблоны, такие как ПИМПЛ. Опять же, эти термины вообще не описывают имена ваших функций, но вы почти наверняка обнаружите степень повторного использования имен функций при использовании таких методов/шаблонов.

я думаю, что пересылка другим функциям — лучший способ описать, что происходит в приведенном выше коде.

Coding OnMyCouch 30.05.2019 22:44

Другие вопросы по теме