|
|
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
blindedну я бы определил его так, класс шаблон, объекты которого используются только как автоматические переменные, ведут себя как обыкновенные указатели на класс-парметр шаблона. вся разумность этих указателей сводится к вызову деструктора в соотвествии с некоторй выбранной стратегией. стратегии бывают разные, например у auto_ptr ов( они же ведущие указатели) за разрушение объекта отвечает последний auto_ptr, которому было присвоено значение. в том случае который привел ты обект сам себя разрушает, как только счетчик ссылок на него достигает 0 ну а ежели хочешь подробнее - Александреску, там целая глава Т.е. тоже самое, что и в ibpp, только удаление объекта возложено на шаблон-враппер. Но весь смысл его применения заключается только в том, чтобы он создавался статически. Т.е. необходимо создавать тоже что-то подобное фабрикам-функциям? Александреску - "Современное проектирование на С++"? ПС: Уже давно нашел банду четырех, но никак не могу для нее выделить время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 12:16 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
смартпоинтеры созданы для автоматизации подсчёта ссылок. Александреску не читал, но в Inside COM эта проблема поставлена хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 15:44 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
На каждый AddRef должен приходиться один Release и вручную сводить этот баланс - всё равно что явное управление памятью вместо сборки мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 15:47 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
maXmoсмартпоинтеры созданы для автоматизации подсчёта ссылок. Александреску не читал, но в Inside COM эта проблема поставлена хорошо. Тады, получается, синглетон включает в себя смартпоинтер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 15:50 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
да не, не думаю, смартпоинтеры придумали для кома когда прогеры опухли везде писать эти AddRef и Release (это приводило к сложноотлавливаемым багам в виде утечки памяти). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 16:25 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
maXmoда не, не думаю, смартпоинтеры придумали для кома когда прогеры опухли везде писать эти AddRef и Release (это приводило к сложноотлавливаемым багам в виде утечки памяти). Пока есть чуть времени открыл Александрески на смартпоинтерах. Вообщем, он излогает, что смартпоинтер решает задачу владения указателем на конкретный объект класса, представляя его единственным в программе. Отличие от синглетона, получается только в том, что синглетон, как я его понимаю, решает задачу владения указателем на единственный объект класса, обеспечивая эту самую единственность. Т.е. синглетон - частный случай смартпоинта. Разница только в статиках. У смартпоинтера стратегия и указатель на объект не статик, а у синглетона - статик. Вот и все. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 16:44 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
Ну, и еще стратегия у синглетона - одна, а у смартпоинтера могут быть разные. По любому синглетон - частный случай смартпоинтера. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 16:46 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
AkhНу, и еще стратегия у синглетона - одна, а у смартпоинтера могут быть разные. По любому синглетон - частный случай смартпоинтера. ;) неправильно ты понял. ты почему то смотришь на код, код деуствительно может быть похож. идеи абсолютно разные. сматпойнтеры используются исключительно для автоматизации управления ресурсами. синглетон же нужен для обеспечения единственнвенности объекта класса, смомента первого обращения к нему и до завершения программы. единственное что их роднит - это что оба они шпблонные врапперы, но не более того. кстати смартпойнтеры никакого отношения к COM не имеют, не надо приписывать все заслуги дяде Билли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 20:20 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
AkhПо любому синглетон - частный случай смартпоинтера. ;) Угум, особливо синглетон Майерса Ты как-то не очень внимательно читал Александреску :( Та ДУРНАЯ реализация, что предложила банда, отнюдь не единственно возможная реализация синглетона ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 08:26 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
blinded AkhНу, и еще стратегия у синглетона - одна, а у смартпоинтера могут быть разные. По любому синглетон - частный случай смартпоинтера. ;) неправильно ты понял. ты почему то смотришь на код, код деуствительно может быть похож. идеи абсолютно разные. сматпойнтеры используются исключительно для автоматизации управления ресурсами. синглетон же нужен для обеспечения единственнвенности объекта класса, смомента первого обращения к нему и до завершения программы. единственное что их роднит - это что оба они шпблонные врапперы, но не более того. кстати смартпойнтеры никакого отношения к COM не имеют, не надо приписывать все заслуги дяде Билли. Ладно. Раз, говоришь, не правельно предствставляю, значит так оно есть. Надо больше книжки читать. Позволю себе замечание: я не на код смотрю, а на средства, или методики, которые они используют. Т.е. пытаюсь разбить на шаблон на части, и провести между ними параллель. Например, смартпоинтер (владение объектом) использует стратегию передачи/владения объектом и его интерфейс (к примеру), а синглетон (ограничитель количества объектов класса) использует стратегию и тоже интерфейс. Это примерный, мною представляемый вид. Отсюда я и веду параллели. Ну, а для конструктивного разговора на эту тему, у меня, видать не достаточно знаний. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 09:42 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) AkhПо любому синглетон - частный случай смартпоинтера. ;) Угум, особливо синглетон Майерса Ты как-то не очень внимательно читал Александреску :( Та ДУРНАЯ реализация, что предложила банда, отнюдь не единственно возможная реализация синглетона Совственно, я из Александреску читаю с вчерашнего дня только главу интеллектуальных указателей, а из банды еще не успел ни одного шаблона прочитать. К сожалению, не распалогаю таким объемом времени, необходимым для прочтения этих книг. Вот и читаю урывками "по ситуации". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 09:46 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
2 Akh Обязательно прочитай и ту и другую до конца хотя бы один раз. Они стоят того чтобы потратить на них время. IMHO КОНЦЕПТУАЛЬНО синглетон и прокси не имеют ничего общего, но некоторые реализации синглетона могут быть похожи на прокси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 11:09 |
|
||
|
интерфейсы, шаблоны и фабрики
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)2 Akh Обязательно прочитай и ту и другую до конца хотя бы один раз. Они стоят того чтобы потратить на них время. IMHO КОНЦЕПТУАЛЬНО синглетон и прокси не имеют ничего общего, но некоторые реализации синглетона могут быть похожи на прокси Найду, потрачу. :) На счет концептуально не спорю, имею ввиду логическую структуру. Но надо начитаться, чтобы иметь четкое представление идеологии обсуждаемых шаблонов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 11:14 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34102898&tid=2030122]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 531ms |

| 0 / 0 |
