Есть и другие подходы.
Если вы не поддерживаете состояние в классе Loader
при загрузке файла, тогда вы можете просто написать бесплатную функцию
File load(const Path& path); //a free function.
Или вы можете сделать функцию static
, если хотите, чтобы она была функцией-членом
class Loader{
public:
static File load(const Path& path);
};
//usage
Loader::load(path);
Иногда такие решения полностью зависят от ситуации, а иногда от личных предпочтений компании / программиста и вкуса. Нет лучшего решения как такового!
Вы даже можете написать функцию load
в самом классе File
:
class File {
public:
bool load(const Path& path); //non-static, or/and the next one!
static File load(const Path& path); //static
};
В этом, возможно, вы захотите изменить имя функции: open()
кажется лучше, чем load()
.