Форум: "Потрепаться";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
ВнизOnline/Offline- enum/class/..? Найти похожие ветки
← →
Oleg_Gashev (2002-08-20 20:42) [0]Здравствуйте!
Как лучше заимплементить Online/Offline? Как enum или как class? Online/Offline оказывает влияние на 10 классов. По разному будет происходить чтение информации и ее обработка. Если делать как класс, он должен быть Singeleton, но с ним может быть проблемма, так как программа создает threads. Если делать его как переменную, она должна быть глобальной по отношению к этим классам. Еще можно все классы наследовать от COnLineOffLine класса. Поэтому и возникет вопрос, что лучше выбрать?
С уважением, Олег.
← →
Romkin (2002-08-20 22:14) [1]Ничего не понял %-))
Но, похоже, подойдет стандарт - общий класс-предок (можно абстрактный), и от него два потомка - один - offline, другой - online. И так для каждого из 10 классов Ж-))
← →
Romkin (2002-08-20 22:19) [2]Второй подход - компонент для onLine и offLine, и у классов просто указываешь значение проперти на нужный класс (предок должен быть общим для онлайн и оффлайн классов), или просто properties разные (Пример - TClientDataSet, св-ва FileName & provider & Datasetfield - все источники данных, и при этом абсолютно разные)
← →
Oleg_Gashev (2002-08-21 18:33) [3]Первый вариант губителен, если кол-во классов будет увеличиваться. Причем это свойство должно быть одно для ВСЕХ классов. Второй вариант более предпочтительнее.
← →
vuk (2002-08-21 18:44) [4]to Oleg_Gashev:
Из Вашего описания ничего невозможно понять. Поподробнее можно?
← →
Oleg_Gashev (2002-08-21 19:11) [5]>vuk
Проблемма уже решена.
А вопрос был в следующем. Попытаюсь более подробно его изложить. Программа читает информацию с интернета и сохраняет ее у пользователя. При online просмотре информация выкачивается с сети, при offline читается с диска. Ну как ИЕ с online offline просмотром страниц. Есть несколько классов, работающих с этим. Причем при online или offline они работают по разному. Появилась проблемма реализовать это property для всех этих классов, причем как readonly и так, чтоб любой объект, созданный из этих классов уже знал online он или offline он.
← →
vuk (2002-08-21 19:24) [6]Если режим один на все экземпляры классов, то вариантом реализации может быть глобальная переменная в секции implementation с доступом через функции. Практически тот же вариант можно реализовать с использованием методов класса.
Если же режим для разных экземпляров может быть разный, то реализация зависит от архитектуры программы.
← →
Oleg_Gashev (2002-08-21 19:28) [7]Решение заключается в следующем.
Создаем parent класс, в нем
private:
static bool m_isOnline;
и
public:
bool isOnline()
{
return m_isOnline;
}
и event StatusChange когда m_isOnline изменяется.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c