Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Visual C++ / С/C++

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 05.02.2009, 11:27   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 05.02.2009
Сообщений: 6
Репутация: 1
По умолчанию Фабрики объектов

Подскажите способы реализации фабрик объектов. Так, чтобы новые классы объектов можно было добавлять без изменений в основном коде. Ну или с минимальными изменениями.
DarkBoroda вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Магазин бытовой техники: gorenje gg5a10wh купить - переходи на сайт ТАЙМТВ!Магазин бытовой техники: телевизор jvc 24 lt 24m590 - переходи на сайт ТАЙМТВ!nafa05купить билет на концерт преснякова в москвеМебельный магазин: кухонный раздвижной стол купить - Переходи на сайт!


Старый 09.02.2009, 06:48   #2
zss
Постоялец
 
Пол:Мужской
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
По умолчанию Re: Фабрики объектов

А разве наследование придумано не для этого.
Вы не трогаете базовый класс, а создаете производный, в котором и реализуете изменения
__________________
Сергей Сергеевич
zss вне форума
 
Ответить с цитированием Вверх
Старый 23.03.2009, 09:38   #3
Hvostenko
Неактивный пользователь
 
Регистрация: 23.03.2009
Сообщений: 1
Репутация: 0
По умолчанию Re: Фабрики объектов

Андрей Александреску посвятил этому вопросу полсотни страниц в книге "Современное проектирование на С++" (http://www.nowa.cc/showthread.php?t=14475&page=4).
Hvostenko вне форума
 
Ответить с цитированием Вверх
Старый 05.04.2009, 04:29   #4
kryp33
Неактивный пользователь
 
Регистрация: 05.04.2009
Сообщений: 4
Репутация: 1
По умолчанию Re: Фабрики объектов

Александреску - классная книга, но для поставленного вопроса - слегка убойна. Решение может быть более простым. Действительно делаете класс фабрика, который по запросу Create() возвращает базовый класс. А ля

public Base* Create(string sDerivedClassName);

в ентой функции делаете switch() который анализирет, чего попросили и создает объект нужного класса. Типа

if(sDerivedClassName=="Дережабль") return new Derejabl();

Он конечно должен быть унаследован из базового. В Create передаете дополнительные параметры (argv) если надо.

Более сложная задача загружать новый класс вообще не меняя кода основной программы. Это можно сделать через динамически загружаемую библиотеку с описанием этого нового класса. Но это наверное вам не надо.
kryp33 вне форума
 
Ответить с цитированием Вверх
Старый 22.04.2009, 16:40   #5
rostan2004
Неактивный пользователь
 
Пол:Женский
Регистрация: 18.04.2009
Адрес: СПб
Сообщений: 41
Репутация: 65
По умолчанию Re: Фабрики объектов

Тут нужно хорошо продумать базовый класс для всех фабричных классов. Посмотрите на CRuntimeClass в MFC, макросы DECLARE_DYCREATE и IMPLEMENT_DYNCREATE.
rostan2004 вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перетаскивание объектов на странице ... Как? MrSnaKe HTML 7 19.02.2010 19:42
Размещение анимированных объектов на веб-странице kalancha Вeб Дизайн 2 04.08.2009 13:25
Динамическое создание объектов Wizard2007 Java Script 5 25.11.2008 15:46
Вставка объектов в RTFBox A_Fox .NET 2 01.04.2008 13:04

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 00:03. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.05553 секунды с 13 запросами