@lehatut1
программист C++

Создавать ли отдельный класс?

нужно ли создавать отдельные классы для каждой из задач "создать треугольники объекта", "создать сетку объекта", "создать текстуру объекта", если каждый из этих классов содержит всего 2-3 функции - одна "создать", вторая(третья) - внутренняя, вспомогательная? или лучше создать три глобальные функции "создать сетку объекта", "создать треугольники объекта", "создать текстуру объекта" ? каждая из функций имела бы 2-3 параметра.
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 2
@koronabora
Человек
Проще работать с конечными объектами.

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

Пример:

1) Есть заказы в системе, создаем класс Order
2) Есть услуги, создаем класс Service
3) Есть базовые услуги - услуги, которые описывают основной смысл, например - Макароны с сыром, это базовая услуга, каждый класс Service имеет указатель либо на номер соответствующей базовой услуги (класса BaseService)

Order хранит номера или указатель на услуги, входящие в заказ, тоесть экземпляры класса Service.
Service хранит номер или указатель на базовую услугу BaseService, которая описывает смысл этого экземпляра класса Service,

В общем, в простом понимании, в классы заворачивают такую структуру, которая часто повторяется. При этом, у каждого класса можно описать методы, необходимые для работы с данной структурой. Например - serialize или deserialize.
Ответ написан
Комментировать
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Фабрику создайте с статик методом.
class factory {
public:
static void* create(enum obj_type) {
  switch(obj_type) {
    case e_rect : return create_rect();
...}

private:
static void* create_rect(){}
...
};


Второй вариант создавать фабричные методы в классах, которые нужно создавать:
class rect{
public:
static rect* create( );
private: 
rect();
...
};


Способов много. Выбирать вам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы