![]() |
|
Модераторы: Daevaorn Страницы: (11) Все « Первая ... 6 7 [8] 9 10 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
azesmcar,
Вот с этого и надо было начинать уточнение.. что не до конца прояснил пример.. с непривычки он действителен сложен для понимания.. там получилось два полупримера, один с фигурами (и принтом), другой с командами их надо считать за одно целое.. А вспомнил еще один недостаток монолитного QI, при множественном наследовании может возникнуть коллизия имен.. ( ну и пра затруднительное проксирование я уже говорил)... я кажись придумал откуда надо плясать.. Это сообщение отредактировал(а) mes - 15.11.2011, 16:56 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Но ведь что я теряю - это тоже важно, потому вариант не подходит Добавлено через 1 минуту и 15 секунд Да, это есть, но это не так страшно. В данном случае меня больше всего волнует монолитность класса и использование кастов. Здесь я вижу самый большой минус. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Попробую еще раз сформулировать свою позицию.
Ваш пример сильно усложняет дизайн и чтение кода, добавляет работы, при этом он конечно вносит некоторое количество плюсов, 90% которых в данном случае не нужны и использоваться не будут. Единственное его достоинство, которое в моей задаче является большим плюсом - это ослабленная монолитность, но я пока не чувствую, что оно того стоит.
Я теряю простоту и понятность кода. Скорее всего мне очень долго придется объяснять как это работает и почему третье лицо должно что-то регистрировать и создавать структуры для параметров. И в общем-то я не уверен, что у меня получится. Это сообщение отредактировал(а) azesmcar - 15.11.2011, 17:02 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
вот о жертвах.. при правильном подходе монолитности не будет и при подходе с интерфейсами, только придется прикрутить, QI рeгистрацию интерфейсов и ту же кучу кода как при Command.. преимущества : получение полноценного интерфейса.. несдостатки усложненость при составлении цепочки ответсвенностей.. у Command акценты расставлены наоборот.. |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Каким образом? Где будет реализован интерфейс, если не в самих классах? Добавлено через 2 минуты и 37 секунд
давайте подумаем в этом направлении. Это сообщение отредактировал(а) azesmcar - 15.11.2011, 17:06 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Еще раз.. я не знаю вашу задачу поэтому не могу подобрать правильно подходящее решение.. В нашем споре я не настаиваю на нем, а лишь отвергаю необоснованные доводы.. Вот например вышеприведенная цитата, может перевести в конструктивный поток.. и так, у нас есть набор интерфейсов, предполагается маличие QI, как получить ослабленную монолитность.. сейчас должен отойти, чуть позже напишу пример.. Да от понимания концепции сильно зависит реализация.. Тогда следующие решения буду предлагать с учетом этого.. вышеобсужденные требовани оставляю в силе Добавлено через 1 минуту и 18 секунд я как раз об этом написал.. значит нашли точку соприкосновения.. дальше нужно стараться не потерять, а то у насдо этого получалось переливание оз пустого в порожнее |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Я имел ввиду, не уверен, что у меня получиться объяснить.
Я действительно не могу описать ее всю целиком, мне надо будет рассказывать всю архитектуру проекта, а это займет пару дней В принципе основные ключевые моменты я описал, остальное приходится рассказывать по мере необходимости. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
пока вы тут, опишите фигуру, кроме перемещения и поворота что она умеет, и в каких случаях она не должна уметь..
чтоб мысли уходили на реализацию, а не на фантазирование поведения Это сообщение отредактировал(а) mes - 15.11.2011, 17:20 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
mirroring, scale, смена layer-а. там на самом деле не только фигуры, есть флаги, точки, которые нельзя передвигать или вращать, зато можно копировать или сохранять в файл, т.е. нужна сериализация. Третье лицо может добавить свой топ, который нельзя копировать, в общем вариаций много. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
вот что пока что получилось, сейчас надо бежать, позже буду дорабатывать, просто выложил в качестве сырья и объекта для обсуждения написанный на скорую руку.
Это сообщение отредактировал(а) azesmcar - 15.11.2011, 17:49 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ага, в pпринципе именно то, только не у geom, а у object.. но только забыто одно но.. ну вот есть у нас эти интерфейсы.. кто ими пользоваться будет ? если пользователь, то ему удобнее узнать фигура , текст, это ли что другое.. если это прослойка для комманд, то не вижу разделение на слои.. Это сообщение отредактировал(а) mes - 15.11.2011, 18:16 |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Вот рабочий пример по моей идее - ни одного dynamic_cast<>:
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Не совсем понял о чем речь. В основном мы. Вообще-то на данный момент расширять ее никто не будет, так-как весь фреймворк пока к этому не готов, но меняя дизайн чего либо мы к этому стремимся, так-что в основном пользоваться будем мы, т.е. я.
Тут тоже не совсем понял о чем речь. Добавлено через 28 секунд math64 спасибо, мне надо это переварить, понадобиться время |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
немного размышлений о том , как я это представляю.. задачу можно разделить на несколько слоев, каждый из который соответсвует определенной концепции.. срез представляет "оголенные" интерфейсы.. в зависимости от того какие слои будут соприкасаться, зависит какими интерфейсы должен предоставлять слой... в некоторых случаях бывает нужным сделать прослойку/адаптер.. Зачастую чтоб не забивать голову, просто лепят мониолит.. К слоям относятся не только программные компоненты, но в том числе оборудование и юзер.. Так например например между консольной программой и юзером один тип среза, а между юзером и ГУИ совсем другой, поэтому отличается подход по формированию.. При Этом слои вполне могут располагаться как консолька<->Гуи<->Юзер.. Саму программу также можно условно разделить на слои : например первый - предметная область, второй взаимодействие с базой,взаимодействие с юзером.. для того чтоб представить задачу нужно понять о каком слое идет речь, другими словами определить, что на входе, а что на выходе.. Добавлено @ 00:20 так например если я описываю предметную область, то все эти moveable вообще не нужны, гораздо ближе "родные " названия самих типов.. если я хочу интерактивное взаимодействие, то я выбрал бы динамический интерфейс (в основе которого паттерн комманда) и по запросу о поддержке команд формировал бы юзеру меню возможных вариантов... ну и дальше в таком же духе.. Добавлено через 10 минут и 52 секунды применительно к вашей задаче : есть набор фигур - предметная область , тут вроде все понятно.. но это одна часть а вот вторая : есть какой то фреймворк, который что то там делает с набором фигур, и который еще кто-то будет использовать как то, по своему усмотрению.. но там имеются еще команды и интерпретатор.. вот так я вижу этот слой на основе ваших деталей Добавлено через 11 минут и 39 секунд Но задача вроде интересная Это сообщение отредактировал(а) mes - 16.11.2011, 00:21 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |