170 похожих чатов

Ситуация такая . Есть станок и он делает деньги, ему

нельзя никак останавливаться, и у него на всякий случай есть резервный мотор. И вот первый мотор приказал долго жить и заклинил. Мотор1 и Мотор2 являются членами станка. Но если сам станок то знает, что у него есть эти два мотора, то (если я не ошибаюсь) каждый мотор имеет доступ только к this самого себя любимого ( то есть мотор1 не может просто так взять и залезть внутрь мотора2). И вот вопрос, как в методе мотора1 запустить соседний Мотор2? Оба находятся в одном станке. Станок запустили и по умолчанию включился первый мотор, если он клинанул, надо чтоб первый мотор сразу запустил второй мотор.
struct Motor
{
bool is_working = false;
// если этот мотор заклинило и надо запустить резервный второй мотор,
// то как к нему можно обратиться из метода start() заклинившего мотора?
void start() { if ( !is_working ) // как тут запустить второй мотор? }

};

struct Stanok
{
Motor motor1;
Motor motor2;

void run_stanok() { motor1.start(); }
};


int main()
{
Stanok stanok;

stanok.run_stanok();

return 0;
}

10 ответов

17 просмотров

почему бы в самом станке не прописать переключение мотора? по факту моторы сами по себе не будут знать о наличии друг друга

поломка мотора1 должна приводить не к запуску мотора2, а к событию "мотор1 сломался", на основании которого управляющий модуль, знающий обо всех моторах, принимает решение о запуске мотора2 так называемая шина событий

хранить состояние мотора в станке, если мотор говорит что он устал, станок включает второй

The Pressbraker
поннял

Если один мотор включает другой, то нарушается первый принцип из SOLID (если не путаю).

The Pressbraker
поннял

можно условный shared_ptr сделать, и передать его в оба мотора. Тогда первый мотор сможет передать свое состояние сразу второму, но это если ими обоими владеет станок (создаёт)

d7d1cd
Если один мотор включает другой, то нарушается пер...

https://hsto.org/r/w1560/getpro/habr/post_images/07b/979/ed5/07b979ed5db74fcec05254aadb60220d.png

Alexey Petrunyaka
https://hsto.org/r/w1560/getpro/habr/post_images/0...

Это наглядное объяснение single responsibility?

d7d1cd
Это наглядное объяснение single responsibility?

Это картинка из статьи https://habr.com/ru/articles/454290/ про SRP как раз

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта