Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-50703
Aristarh
2002-09-05 11:28
2002.09.16
Перепутались пиктограммы компонентов


1-50860
greenrul
2002-09-04 15:47
2002.09.16
Как определить папка/файл в строке?


3-50631
Monstros
2002-08-26 17:51
2002.09.16
Возможно ли в Table загрузить информацию из StringGrid?


6-50896
Psiho
2002-07-11 11:14
2002.09.16
MIME koi8-r


1-50694
malakai
2002-09-04 13:30
2002.09.16
Работа с ДЛЛ...




   Наверх