Size: a a a

2020 August 21

RM

Roy Mustang in C++ Together 2.0
Если не выносить в отдельный класс, то в GetModuleManager будет много методов
источник

🦊

🦊fox.cpp in C++ Together 2.0
this->ModManager().RootPath
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
this->ModManager().RootPath
Нет)
источник

RM

Roy Mustang in C++ Together 2.0
Это говно собачье
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
this->ModManager().RootPath
Такое только для мелких задач можно делать
источник

🦊

🦊fox.cpp in C++ Together 2.0
Ты вот сказал, что небезопасно поля отдавать, тебе твои сеттеры как вообще безопасность дадут?
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
Ты вот сказал, что небезопасно поля отдавать, тебе твои сеттеры как вообще безопасность дадут?
Это не только небезопасно, но и нечитабельно
источник

RM

Roy Mustang in C++ Together 2.0
Это не обсуждается, я вопрос о другом ставил
источник

🦊

🦊fox.cpp in C++ Together 2.0
У меня всегда вопросов больше становится от того, что я твой код вижу
источник

🦊

🦊fox.cpp in C++ Together 2.0
Не могу удержаться
источник

RM

Roy Mustang in C++ Together 2.0
Моя реализация может быть выполнена аж 3мя способами: первый - это как сейчас я это реализовал, второе - через наследование, а третье - это класс Directories имеет статические методы и поля
источник

RM

Roy Mustang in C++ Together 2.0
Вот вопрос, когда какой случай выбирать?
источник

RM

Roy Mustang in C++ Together 2.0
Наследование вообще неуместно в данном случае, но сам факт такой реализаций возможен и поэтому оставил
источник

RM

Roy Mustang in C++ Together 2.0
В С++ некоторые вещи реализовать можно более чем одним способом, но как выбрать правильный? На чем нужно основываться? Стиль? Архитектура? Производительность?
источник

🦊

🦊fox.cpp in C++ Together 2.0
1) Список директорий представляет собой аморфную сущность, которая может произвольно меняться в рантайме и требует сложной логики для синхронизации доступа.
2) Не используй блядь наследование вместо композиции, это рак мозга и делает из твоего кода лапшу.
3) Значения не изменяются в рантайме вовсе, либо задаются один раз при инициализации до того, как код начнет их использовать (важно задокументировать момент инициализации).
источник

🦊

🦊fox.cpp in C++ Together 2.0
Только это самое
источник

🦊

🦊fox.cpp in C++ Together 2.0
namespace Directories {
 std::string ModulesPath;
}
источник

🦊

🦊fox.cpp in C++ Together 2.0
про пункт 3, класс там вообще выкинуть надо тогда
источник

🦊

🦊fox.cpp in C++ Together 2.0
Понятие класса подразумевает создание его экземпляров
источник

🦊

🦊fox.cpp in C++ Together 2.0
Статические поля предназначены, чтобы делиться данными между экземплярами не нарушая инкапсуляцию.
источник