Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Набор специфических поведений класса (примеси) (число прочтений - 24664 )
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #15 - 02. Июня 2006 :: 11:40
Печать  
kms писал(а) 02. Июня 2006 :: 11:18:
И агрегация проигрывает вот в чем:
Если есть большое число аспектов, и каждый реализуется отдельным агрегированным объектом, создание и копирование такого класса - это каждый раз создание необходимого числа агрегируемых объектов.

Не обязательно. Простые объекты такого типа зачастую являются простыми коллекциями данных, и их вполне можно засунуть в синглтоны.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Набор специфических поведений класса (примеси)
Ответ #16 - 02. Июня 2006 :: 11:42
Печать  
Палыч писал(а) 02. Июня 2006 :: 11:36:
kms
Вот spock намёк уловил Подмигивание
Прислушайся...

Блин, как интересно. Беру отпуск на неделю...
  

De quelle planète es-tu?
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #17 - 05. Июня 2006 :: 04:23
Печать  
Да просто я тут давеча приобрел GoF. Теперь мысли просто прут Улыбка
Про жука: вот есть там патерн Строитель (Builder) - это то, что нужно.
Имхо, нужно найти компромис между большим количеством классов (суперклассов or родителей) и удобством программирования и дальнейшего поддержания.
Ведь можно же не городить огород из классов, а создать класс всего один класс (или несколько, на каждого жука свой). Но тогда встает вопрос с дальнейшим поддержанием этого добра.
Еще раз повторюсь: все эти проблемы разжеваны у GoF (на всякий пожарный: банда четырех или gang of four).
Есть кстати интересный сайтик, я его уже несколько лет как обхаживаю: http://ooad.asf.ru/
зы: читать эту "банду" лучше применительно к конкретной задаче, уж очень тяжко оно идет.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #18 - 05. Июня 2006 :: 06:07
Печать  
Опаньки, а я думал, что мы все на этой книге выросли Улыбка

Читаю все посты в разных ветках, которые вы нарастили по ООП в 1С, но понимание приходит с трудом. Так и подмывает написать "не осилил" Улыбка и начать тему заново  Смех
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Набор специфических поведений класса (примеси)
Ответ #19 - 05. Июня 2006 :: 14:53
Печать  
spock писал(а) 05. Июня 2006 :: 04:23:
Да просто я тут давеча приобрел GoF. Теперь мысли просто прут Улыбка


На всякий случай реквизиты этой книги. Я, например, не сразу нашел.

  Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес
Приемы объектно-ориентированного проектирования. Паттерны проектирования
Серия: Библиотека программиста

Издательство: Питер, 2001 г.
Мягкая обложка, 368 стр.
ISBN   5-272-00355-1, 0-201-63361-2
Тираж: 5000 экз.
Формат: 70x100/16
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #20 - 06. Июня 2006 :: 03:13
Печать  
Раз тема про книжки пошла, вот еще одна. Она будет помягче. Я с нее начинал читать патерны. Но один фиг, автор этой книги ссылается на GoF для прочтения.
"Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию"
Алан Шаллоуей, Джеймс Р. Тротт
http://www.bolero.ru/product-22262473.html
  
Наверх
ICQ  
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #21 - 06. Июня 2006 :: 04:52
Печать  
spock писал(а) 05. Июня 2006 :: 04:23:
Про жука: вот есть там патерн Строитель (Builder) - это то, что нужно.

Вкратце Билдер решает совсем другие задачи, к приведенной тут проблеме отношения никакого не имеет.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #22 - 06. Июня 2006 :: 05:09
Печать  
Про жука: нужно создавать "хитрого" жука - поющего, жужащего, вонючего и т.д. Каждый раз разного, из разных компонентов.

Английское название: builder
Назначение: отделяет конструирование сложного объекта от его представления, так что в результате одного и того же процесса конструирования могут получаться разные представления.
Применяется в случаях: лгоритм создания сложного объекта не должен зависеть от того, из каких частей состоит объект и как они стыкуются между собой; процесс конструирования должен обеспечивать различные представления конструируемого объекта.
Плюсы: позволяет изменять внутреннее представление продукта;
изолирует код, реализующий конструирование и представление;
дает более тонкий контроль над процессом конструирования.
  
Наверх
ICQ  
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #23 - 06. Июня 2006 :: 05:34
Печать  
По сути задачи, когда я говорил об агрегации  - я имел в виду паттерн комманд.

К предыдущему посту хотелось бы добавить, что по задаче требуется не порождающий паттерн, а паттерн поведения.
  
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #24 - 06. Июня 2006 :: 05:38
Печать  
spock писал(а) 06. Июня 2006 :: 05:09:
Про жука: нужно создавать "хитрого" жука - поющего, жужащего, вонючего и т.д. Каждый раз разного, из разных компонентов.

Английское название: builder
Назначение: отделяет конструирование сложного объекта от его представления, так что в результате одного и того же процесса конструирования могут получаться разные представления.


Ключевая фраза отделяет конструирование объекта от его представления. Посмотри примеры, этот паттерн решает совсем другие задачи.


Конечно, можно создать кучу строителей для каждого вида жука, но мне кажется это не совсем корректный подход. И опять же обсуждаем мы поведение, а не создание ... это чтобы не уходить от темы.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #25 - 06. Июня 2006 :: 06:35
Печать  
Может я конечно потерял нить разговора... Озадачен
Но вроде, мы про жуков говорим, которых нужно быть.  Улыбка
Все же я считаю, что прав я Класс
  
Наверх
ICQ  
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #26 - 06. Июня 2006 :: 07:03
Печать  
spock писал(а) 06. Июня 2006 :: 06:35:
Может я конечно потерял нить разговора... Озадачен
Но вроде, мы про жуков говорим, которых нужно быть.  Улыбка
Все же я считаю, что прав я Класс


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

Второй вопрос по поводу целесообразности использования паттерна строитель для создания объекта жук в контексте данной темы.
Основная идея строителя в том, что заменяя конкретного строителя мы получаем разные представления при одном и том же процессе конструирования. Но в данном случае нам необходимо будет создать отдельного строителя для каждого конкретного вида жука. Либо объединив паттерн строитель с паттерном комманд можно получить менее громоздкий вариант. Но это уже будет не чистый строитель)
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #27 - 06. Июня 2006 :: 07:10
Печать  
Цитата:
На всякий случай реквизиты этой книги. Я, например, не сразу нашел.

  Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес
Приемы объектно-ориентированного проектирования. Паттерны проектирования
Серия: Библиотека программиста

Издательство: Питер, 2001 г.
Мягкая обложка, 368 стр.
ISBN   5-272-00355-1, 0-201-63361-2
Тираж: 5000 экз.
Формат: 70x100/16

Ее переиздали в 2006, кстати.  на www.piter.com можно было заказать еще совсем недавно.
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Набор специфических поведений класса (примеси)
Ответ #28 - 06. Июня 2006 :: 07:37
Печать  
all

Други, спасибо за комментарии и реквизиты книжек, это то, что мне было нужно.
Что-то последнее время заела меня злая штамповка, хочется зарабатывать деньги творчески.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Набор специфических поведений класса (примеси)
Ответ #29 - 06. Июня 2006 :: 09:10
Печать  
автор (kms), поясни нам, а про  что мы тут говорим: про поведение или конструирование объектов? Улыбка
Я вижу конструирование объектов с определенным поведением, другие же участники видят поведение еще непонятно чего Улыбка
Предлагаю перефразировать проблему.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать