Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
14-50970
Proz
2002-08-08 11:31
2002.09.16
Как заблокировать клавиатуру ?


1-50812
Konrads
2002-09-03 20:52
2002.09.16
%SystemRoot% %Temp%


1-50836
stas_a
2002-09-03 16:21
2002.09.16
Удалить себя


14-50916
Мася
2002-08-21 09:11
2002.09.16
Автозагрузка


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский