Форум программистов, компьютерный форум CyberForum.ru

Стоит ли прятать интерфейсные методы внутри класса? - C++

Восстановить пароль Регистрация
 
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2274 / 990 / 226
Регистрация: 30.11.2013
Сообщений: 3,291
06.11.2015, 16:20     Стоит ли прятать интерфейсные методы внутри класса? #1
1) Стоит ли прятать интерфейсные методы внутри класса, чтобы обеспечить доступ к интерфейсу интерфейса только с помощью явного приведения указателя на объект к интерфейсному указателю.
C++
1
2
3
4
5
6
7
8
9
10
class Interface
{
public:
    virtual void f() = 0;
}
class Bar : public Interface
{
private:
    virtual void f( ){};
}

2) Сразу же по п.1 возникает проблема:
промолчит если класс перестал реализовывать данный интерфейс
C++
1
2
3
IFoo* ptr = dynamic_cast<Foo*>(m_bar);
if(ptr)
    ptr->canDo();
тут же не даст скомпилить
C++
1
IFoo* ptr = m_bar;
Какой способ предпочитаете вы?

3) стоит ли писать префиксную приставку методам интерфейсса
C++
1
virtual void ICanDraw_draw() = 0;
для обеспечения перекрыания совпадения имён методов разных интерфейсов и читаемость кода.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2015, 16:20     Стоит ли прятать интерфейсные методы внутри класса?
Посмотрите здесь:

C++ Linux методы класса
Методы класса C++
Использовать private члены класса внутри static ф-ий этого же класса. C++ Builder
Visual C++ Dll методы класса
Инициализация класса A внутри класса B C++
Передача значения класса в функцию внутри класса C++ Builder
C++ методы класса
C++ delete внутри класса для самого класса
Интерфейсные приложения Visual C++
Можно ли прятать методы класса в пространство имен? C++
Выделить слово, внутри которого стоит курсор C++ Builder
C++ Видимость экземпляра класса внутри класса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
5426 / 2225 / 410
Регистрация: 15.11.2014
Сообщений: 5,016
Завершенные тесты: 1
07.11.2015, 01:03     Стоит ли прятать интерфейсные методы внутри класса? #2
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Стоит ли прятать интерфейсные методы внутри класса, чтобы обеспечить доступ к интерфейсу интерфейса только с помощью явного приведения указателя на объект к интерфейсному указателю.
от ситуации зависит жеж.

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
стоит ли писать префиксную приставку методам интерфейсса
жуть какая то
Perfilov
264 / 165 / 43
Регистрация: 25.02.2015
Сообщений: 435
08.11.2015, 00:16     Стоит ли прятать интерфейсные методы внутри класса? #3
ихмо смысла мало. да и мешает в некоторых ситуациях. например если есть возможность создать объект на стеке и тут же позвать нужный метод - при таком подходе ею нельзя будет воспользоваться. надо будет кастить. если хочется полностью скрыть детали класса, то в h файле можно оставить одну свободную функцию-фабрику, которая возвращает указатель на интерфейс. а в сpp файле делать как душе угодно, но и там нет особого смысла прятать эти функции в private секции. за пределами cpp файла такую реализацию интерфейса все равно никто не увидит.
Yandex
Объявления
08.11.2015, 00:16     Стоит ли прятать интерфейсные методы внутри класса?
Ответ Создать тему
Опции темы

Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru