Имя: Пароль:
1C
1С v8
Шаблоны проектирования
,
0 Ненавижу 1С
 
гуру
18.04.12
09:13
В разработке программного обеспечения, шаблон проектирования или паттерн (англ. design pattern) — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Обычно шаблон не является законченным образцом, который может быть прямо преобразован в код; это лишь пример решения задачи, который можно использовать в различных ситуациях. Объектно-ориентированные шаблоны показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться.
«Низкоуровневые» шаблоны, учитывающие специфику конкретного языка программирования, называются идиомами. Это хорошие решения проектирования, характерные для конкретного языка или программной платформы, и потому не универсальные.
На наивысшем уровне существуют архитектурные шаблоны, они охватывают собой архитектуру всей программной системы.
Алгоритмы по своей сути также являются шаблонами, но не проектирования, а вычисления, так как решают вычислительные задачи.

wiki:Паттерны_проектирования

Какие шаблоны (паттерны) проектирования можно использовать в 1С 8.х и какие есть примеры их использования?
1 ДенисЧ
 
18.04.12
09:15
Банду четырёх прочитал?
Тогда откуда такие вопросы?
Если нет, то тем более.

Сначала прочти.
2 Ненавижу 1С
 
гуру
18.04.12
09:16
(1) читал и снова перечитываю
и не только их, тема очень интересна
3 vmv
 
18.04.12
09:17
1С использует реаляционные таблицы - эээ вроде нет
1С использует методы ООП - эээ вроде нет

Для 1С можно использовать стандарты шаблонов проектирования эээ т.к. 1С не использует реляционные таблицы и методы ОПП, то нельзя.

Ввод - она настолько крута, что требует разработки собственных шаблонов и весь остальной мир отдыхает
4 Ненавижу 1С
 
гуру
18.04.12
09:19
(3) не согласен ни с одним из:

>>1С использует реаляционные таблицы - эээ вроде нет
- да их тысячи!
>>1С использует методы ООП - эээ вроде нет
- все методы виртуальны фактически, инкапсуляция есть, наследования нет, но банда четырех делает упор на агрегации/композиции больше
5 vmv
 
18.04.12
09:22
(4) внутренняя локика отношений таблиц с нятяжкой может быть названа реаляционной, т.е. сотни утилит которые строят схемы отношений в классических релляциях сходят с ума когда им суешь табличное пространство 1С-эсины.

по ООП аналогично, да и где там наследование нашли, копипаст уже принят в 1С как метод наследования?
6 Ненавижу 1С
 
гуру
18.04.12
09:24
(5) там нет наследования,я ж написал, ООП ущемленное
однако про реляционность - ну нет на уровне СУБД и чего?
7 ДенисЧ
 
18.04.12
09:25
(3)
"
1С использует реаляционные таблицы - эээ вроде нет
1С использует методы ООП - эээ вроде нет
"

И то и другое она исползует
8 vmv
 
18.04.12
09:25
(6) это значит что сгенерить схемы, используя стандартный софт проектировщиков не получиться
9 Asmody
 
18.04.12
09:26
допустим, фасады и декораторы как-то ещё даже в типовых используются, на фабрике XDTO держится, синглтон в 1С… ну, тоже можно сделать. что там ещё из незамудрёного?
10 Ненавижу 1С
 
гуру
18.04.12
09:27
(9) примеры можно?
11 Asmody
 
18.04.12
09:27
(5) вы восьмёрку из конфигуратора видели?
12 Asmody
 
18.04.12
09:28
(9) про что примеры?
13 Ненавижу 1С
 
гуру
18.04.12
09:29
(12) ну где в типовых используются "фасады и декораторы"? концептуально на пальцах можно
14 Asmody
 
18.04.12
09:32
(13) грубо, модули с названием блаблаблаПереопределяемый можно в какой-то степени назвать фасадом
15 Asmody
 
18.04.12
09:34
в паттернах главное что для пргимания? попытаться отстраниться от ООП и понять суть
16 Ненавижу 1С
 
гуру
18.04.12
09:36
(15) согласен
17 Ненавижу 1С
 
гуру
18.04.12
10:48
всем лениво или никто не в теме?
18 cViper
 
18.04.12
11:02
(13) Синглтон и адаптер можно реализовать без особых проблем. Итератор тоже.
19 Ненавижу 1С
 
гуру
18.04.12
13:04
(18) примеры то есть?
20 ДенисЧ
 
18.04.12
13:07
(19) На итератор смотри любую коллекцию
21 Ненавижу 1С
 
гуру
18.04.12
13:09
(20) это не шаблон, это возможности языка
кстати ограниченные, я не могу создавать собственные вид коллекций поддерживающие "Для каждого"
выборка не умеют "Для каждого"
22 Steel_Wheel
 
18.04.12
13:19
(19) ну синглтон, в виде обработки, которая перед запуском проверяет определенную константу, вполне может быть реализован

Ну, фабрику можно сделать.

Паттерн "строитель" работает при создании отчетов
23 Ненавижу 1С
 
гуру
18.04.12
13:22
спасибо, товарищи, набросали
это так сказать для кругозора
24 quest
 
18.04.12
13:23
а если задуматься - так ли нужны шаблоны проектирования для 1С? ведь что такое шаблоны - не более чем лучшие (или чаще встречаемые)  практики при проектировании систем. Так что рекомендации к разработке систем расположеные на ИТС - в первом приближении мможно рассматривать как такие шаблоны. Если хочется большего то в принципе, с моей точки зрения, перегоняется исходный код в AST после чего ищем повторяющие последовательности, анализируем их. И находим что-то похожее на шаблон в контексте одного приложения (бухгалтерия, зарплата, торговля).
Вообще шаблон это не более чем кирпичик для строительства программы. Раз программа есть, значит есть и шаблоны которые использовались при написании. просто они неявны и еще никем не описаны.
25 cViper
 
18.04.12
14:07
(21) У тебя неправильное представление о шаблоне Итератор.
26 Ненавижу 1С
 
гуру
18.04.12
14:09
(25) это только комментарий к (20) :)
27 cViper
 
18.04.12
14:09
+(25) Можно сделать обработку содержащую встроенную приватную коллекцию. Реализовать публиные(ЭКСПОРТ) методы ПолучитьИтератор(), ЕстьСледующий(), Следующий(). И уже с их помощью обходить коллекцию.
28 cViper
 
18.04.12
14:10
(26) А то , что ты хочешь в (21) не поддерживает 1С как платформа.
29 Ненавижу 1С
 
гуру
18.04.12
14:11
(27) можно, но в 1С решениях я такого не видел
30 Ненавижу 1С
 
гуру
18.04.12
14:11
(28) забудь, это был оффтоп на (20)
31 cViper
 
18.04.12
14:13
(29) 1С не предполагает создание своих уникальных объектов, отличных от предложенных метаклассов.
32 gavrikprog
 
18.04.12
14:14
(0)
БСП - похоже
33 Ненавижу 1С
 
гуру
18.04.12
14:14
(31) да? а зачем разрешает делать обработки?
34 gavrikprog
 
18.04.12
14:15
(32)
кстати они однотипные доработки рекомендуют делать конфигурациями.
35 cViper
 
18.04.12
14:16
(33) Обработка не является уникальным классом.
36 Ненавижу 1С
 
гуру
18.04.12
14:17
(35) почему?
37 cViper
 
18.04.12
14:18
(33)"отличных от предложенных метаклассов."
38 Ненавижу 1С
 
гуру
18.04.12
14:20
(37) ну ты же сам итератор из обработки сделал, а язык, так чтож - да х.. с ним
39 cViper
 
18.04.12
14:30
(38) Итератор делался не из обработки, а в обработке. Для обхода коллекции встроенной в нее. Для лучшего понимания шаблонов, попробуй их по реализовывать не на 1С
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.