|
|
  |
си, паттерны ооп, разбиение на объекты, parent's parent, детско-родительские отношения |
|
|
|
Aug 17 2012, 09:56
|
Знающий
   
Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163

|
Цитата указатель на конкретного менеджера изначально знает только конкретная палета Это плохой дизайн, на мой взгляд. Более того, изначально на конкретного менеджера вообще ни у кого не должно быть указателя. Изначально там должна быть заглушка или null, для того, чтобы можно было класс тестировать изолированно.
|
|
|
|
|
Aug 17 2012, 10:06
|
Местный
  
Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874

|
Цитата(andrewlekar @ Aug 17 2012, 13:56)  Это плохой дизайн, на мой взгляд. а как по другому? оно как происходит: создаётся структурка "менеджер", создаётся структурка "палета", они через некий клей находят друг друга и сохраняют внутри некий абстрактный указатель через который дёргают методы друг друга это не моя архитектура и ничего сделать я с этим не могу, моё дело - начинка "палеты", дело других программистов - начинка "холодильника" и т.п.  мне нужно понятно и с достоинством  вытащить указатель на менеджера
Сообщение отредактировал Idle - Aug 17 2012, 10:06
|
|
|
|
|
Aug 17 2012, 10:51
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
сначала программисты "из удобства" создают некий выдуманный мир своих объектов, а потом начинается долгое объяснение того, как это здорово, когда холодильник заказывает продукты в интернет-магазине... в результате система умный дом вызывает наряд полиции для устранения угрозы жизни хозяину, который всего-навсего решил развлечься в стиле BSDM - умный дом увидел у подруги наручники и принял решение... уважаемые господа программисты! пожалуйста, вернитесь на грешную землю! никогда помидор ни при каких условиях НЕ МОЖЕТ, НЕ ДОЛЖЕН и даже НЕ ИМЕЕТ ПРАВО знать о палетте, о каком-то менеджере и т.д.! НУ НЕ ЕГО ЭТО ПОМИДОРСКОЕ ДЕЛО! не плодите сущности без нужды! не оправдывайте свое желание сделать франкенштейна "удобством" (для кого?!), скоростью (кого она волнует при нынешних мегагерцах?!) или еще чем-то! остров доктора Моро должен остаться лишь плодом фантазии, не пришивайте руки-ноги помидору!!!! Цитата(Idle @ Aug 17 2012, 14:06)  мне нужно понятно и с достоинством  вытащить указатель на менеджера похабно впихнутое врядли можно с достоинством вытащить... см. выше
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Aug 17 2012, 10:53
|
Местный
  
Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874

|
Цитата(ARV @ Aug 17 2012, 14:49)  ок, дались тебе эти помидоры, не могу я реальную задачу здесь описать вопрос не про то как жить дальше, а про то что раз уж есть иерархия объектов, как из этого сделать my best
|
|
|
|
|
Aug 17 2012, 11:19
|
Знающий
   
Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163

|
Как делать best надо спрашивать того, кто эту архитектуру задумал. В вашем случае, самое грамотное будет - сделать абы как, лишь бы работало. Если есть у "помидора" указатель на его контейнер, то дёргать контейнер, а тот пускай дергает менеджера, так как знает о нём - это в случае, если есть возможность менять код контейнера. Если есть глобальный список всех менеджеров, то можно опросить их всех и попробовать найти свою собственную паллету по ним - это в случае, если апи позволяет.
|
|
|
|
|
Aug 17 2012, 11:20
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(ARV @ Aug 17 2012, 14:51)  ...в результате система умный дом... +100500 и ышо 5 копеек... только траблы наступают раньше. ОО сущности от клиента = есть статика. А вот надуманное от программирования = без костылей не будет жить, если клиент всего-то потребовал модернизировать его логику. именно поэтому найденные сущности ОО методологией дают код малоизменяющийся на всём времени жизни проекта. а это существенный плюс, который не могут дать другие методологии разработки софта.
|
|
|
|
|
Aug 17 2012, 11:33
|
Местный
  
Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874

|
Цитата(andrewlekar @ Aug 17 2012, 15:19)  Если есть у "помидора" указатель на его контейнер, то дёргать контейнер, а тот пускай дергает менеджера, так как знает о нём - это в случае, если есть возможность менять код контейнера. так и делаю, протаскиваю указатель на контейнер сверху вниз, там где "помидорчик протух" он дёргает контейнер, а тот уже дёргает "менеджера" выглядит всё это паршиво и засоряет интерфейсы, вот и пытаюсь как-то упорядочить доступ к верхнему контейнеру и интерфейсы, цепочка parent->...->parent хотя бы выглядит стандарным подходом Цитата(andrewlekar @ Aug 17 2012, 15:19)  Если есть глобальный список всех менеджеров, то можно опросить их всех и попробовать найти свою собственную паллету по ним - это в случае, если апи позволяет. нет, такого нет
|
|
|
|
|
Aug 17 2012, 13:51
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(andrewlekar @ Aug 17 2012, 15:24)  ...разбиение на структуры присущие предметной области - это и правда плюс. Но ООП тут и не пахнет. тогда прошу вас подсказать: где по Вашему начинается проектирование? Цитата(Idle @ Aug 17 2012, 15:33)  ...указатель на контейнер сверху вниз... вам несколько раз правильно сказали уже - помидор ничего не знает о месте его нахождения. ну нет на нём записи страна-дом-улица-склад-шкаф-палета..нету... он может известить весь мир что он протух (запах испортить). а вот конкретно ударить в нос менэджеру - этого нету. если палетта умная и по весу(или теплу) определяет протухание - она может придпринять действия. может ловить запах в каждом посадочном месте помидора. и строго говоря указатель на парэнт - звоночек о том, что консерваторию надо менять...
|
|
|
|
|
Aug 17 2012, 14:35
|
Местный
  
Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874

|
Цитата(kolobok0 @ Aug 17 2012, 17:51)  и строго говоря указатель на парэнт - звоночек о том, что консерваторию надо менять... ок, менять начальника/работу/страну я не буду по этому поводу, так что вот  и что делать в этом случае? опрос проходом сверху вниз? опрашивать сотни объектов? поллинг т.е. ? как это называется, где написано что это плохо, по каким словам гуглить "c++ code smells" or what?
|
|
|
|
|
Aug 17 2012, 14:59
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(Idle @ Aug 17 2012, 18:35)  и что делать в этом случае? опрос проходом сверху вниз? опрашивать сотни объектов? поллинг т.е. ? а если сотни объектов пошлют месседжи - это, конечно, кардинально изменяет ситуацию? Цитата(Idle @ Aug 17 2012, 18:35)  как это называется, где написано что это плохо где написано, что поллинг - плохо? в ОС Windows ВСЕ события рождаются в результате ПОЛЛИНГА, система callback-ов весьма слабенькая... и Билл Гейтс не рвет пейсы от этого
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Aug 17 2012, 15:07
|
Местный
  
Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874

|
Цитата(ARV @ Aug 17 2012, 18:59)  а если сотни объектов пошлют месседжи - это, конечно, кардинально изменяет ситуацию? так сообщения ожидаются редко, или это не имеет значения? Цитата(ARV @ Aug 17 2012, 18:59)  где написано, что поллинг - плохо? в ОС Windows ВСЕ события рождаются в результате ПОЛЛИНГА, система callback-ов весьма слабенькая... и Билл Гейтс не рвет пейсы от этого  не знаю, _ты_ мне скажи где написано как надо делать, ссылку пока дали только одну - ни с родителями ни с поллингом не связанную
|
|
|
|
|
Aug 17 2012, 15:43
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(kolobok0 @ Aug 17 2012, 16:51)  вам несколько раз правильно сказали уже - помидор ничего не знает о месте его нахождения. [кусь] и строго говоря указатель на парэнт - звоночек о том, что консерваторию надо менять... Это понятИйное  Помидор не знает, где находится, но обязан знать, кому жаловаться на свое состояние. Такшта. Но есть масса чисто технических вопросов: а кто ему, собсна, отдает поток исполнения, этому овосчу? Становится похоже на то, что и эвенты и поллинг окажутся одинаково хлопотными по ресурсам. Это всё от постановки задачи  Idle, без хотя бы альтернативной формулировки, тема так и останется флеймообразной. Мсм.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|