LINUX.ORG.RU

Проектирование с++

 , ,


0

1

Привет! Есть объект Game, внутри которого есть массив объектов Company. Каждому объекту Company нужно производить решение сколько сырья переделывать в продукцию на основании потребности рынка и производственных мощностях соседних компаний. Эти данные находятся в объекте Game, в который включён наш объект, соответсвенно, я не понимаю как объекту до этих данных дотянутся. Передавать указатели на весь массив и рынок? Кажется что высчитывать необходимые данные в объекте Game и передавать их параметрами не есть правильно, поскольку необходимые данные могут измениться в будующем.

Передавать указатели на весь массив и рынок?

А как по другому? Рынок отдельным объектом, пусть по id продукта отдаёт потребность. У Company метод по тому же id продукта отдавать производственную мощность.

vvn_black ★★★★★
()

есть массив объектов Company

В них соблюдаются политика инклюзивности и создаётся позитивная дискриминация LGBTQ+ комьюнити?

LamerOk ★★★★★
()
struct PotrebnostiRunkaProvider {
  virtual ~PotrebnostiRunkaProvider() {}
  virtual RunokData get_runok_data() = 0;
};

struct MozhnostSosendichCompaniyProvider() {}
  virtual ~MozhnostSosendichCompaniyProvider() {}
  virtual std::list<MoznhostCompiniy> get_mozhnost() = 0;
}

class Game: public PotrebnostiRunkaProvider, public MozhnostSosendichCompaniyProvider {
...
};

class Company {
  void poschitat_skolko_surya_peredelyvat(PotrebnostiRunkaProvider &a, MozhnostSosendichCompaniyProvider &b) {
  ...
}
};

int main() {
  Game game;
  game.get_company("roga_i_koputa").poschitat_skolko_surya_peredelyvat(game, game);

}
anonymous
()

передавай параметрами в вызов метода Game, а вообще читай про dependency injection

EugeneBas ★★
()

У меня стойкое ощущение, что класс Game у тебя следует антипаттерну God object. Рекомендую проверить этот момент и исправить при обнаружении. Глядишь, многие вопросы отпадут сами собой

XMs ★★★★★
()
Ответ на: комментарий от anonymous

Это нормально. Теперь последний писк моды — писать по-русски, используя англицизмы не более, чем врачи используют латынь. Пятизвёздный аксакал ЛОРа подтверждает.

monk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.