Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.16;
Скачать: 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 вся ветка

Текущий архив: 2002.09.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
14-50962
JAndrey
2002-08-22 10:24
2002.09.16
Где взять компоненты для работы с COM, LPT, EPP, ECP портами???..


1-50752
Сергей01
2002-09-04 01:29
2002.09.16
Можно ли получить AutoSize в RichEdit Или возможность писать ....


3-50595
IvanKohut
2002-08-25 13:40
2002.09.16
mysql


7-51008
Jorchick
2002-07-04 17:14
2002.09.16
Работа с реестром


14-50965
Ренат
2002-08-19 10:45
2002.09.16
А какие автомобили предпочитают программеры?