Сообщение Re[2]: "Гибкий" конструктор для инициализации объекта класса от 15.09.2023 11:38
Изменено 15.09.2023 11:40 Sm0ke
Re[2]: "Гибкий" конструктор для инициализации объекта класса (аналог Dispose)
Здравствуйте, zelenprog
Можно сделать вспомогательные функции приложения таким образом, чтобы ...
... Чтобы их было легче использовать
--
Z>
Можно сделать вспомогательные функции приложения таким образом, чтобы ...
// global function
I_DBAdapter MakeDBAdapter(string pFileName) // 1
{
I_DBAdapter lDBAdapter = null;
T_DatabaseInfo lDatabaseInfo = new T_DatabaseInfo(pFileName);
if lDatabaseInfo.DBType = Database.DBType1 then
lDBAdapter = new T_DBAdapter1(pFileName);
elseif lDatabaseInfo.DBType = Database.DBType2
lDBAdapter = new T_DBAdapter2(pFileName);
else
// исключение "неизвестный тип БД
endif
return lDBAdapter;
}
// global function
T_DBGoodsReader MakeDBGoodsReader(string pFileName) // 2
{
T_DBGoodsReader lDBGoodsReader = new T_DBGoodsReader;
I_DBAdapter lDBAdapter = MakeDBAdapter(pFileName); // 1
lDBGoodsReader.SetAdapter(lAdapter);
lDBGoodsReader.Init();
return lDBGoodsReader;
}
... Чтобы их было легче использовать
Class MainForm
{
string mFileName;
void OnButton_ReadDatabase()
{
T_DBGoodsReader lDBGoodsReader = MakeDBGoodsReader(mFileName); // 2
lDBGoodsReader.Read();
// показать на форме список товаров
}
}
--
Z>
Z>Class MainForm
Z>{
Z> string mFileName;
Z> void OnButton_ReadDatabase()
Z> {
Z> T_DatabaseInfo lDatabaseInfo = new T_DatabaseInfo(mFileName);
Z> T_DBGoodsReader lDBGoodsReader = new T_DBGoodsReader;
Z> I_DBAdapter lDBAdapter = null;
Z> if lDatabaseInfo.DBType = Database.DBType1 then
Z> lDBAdapter = new T_DBAdapter1(mFileName);
Z> elseif lDatabaseInfo.DBType = Database.DBType2
Z> lDBAdapter = new T_DBAdapter2(mFileName);
Z> else
Z> // исключение "неизвестный тип БД
Z> endif
Z> lDBGoodsReader.SetAdapter(lAdapter);
Z> lDBGoodsReader.Init();
Z> lDBGoodsReader.Read();
Z> // показать на форме список товаров
Z> }
Z>}
Z>
Re[2]: "Гибкий" конструктор для инициализации объекта класса
Здравствуйте, zelenprog
Можно сделать вспомогательные функции приложения таким образом, чтобы ...
... Чтобы их было легче использовать
--
Я просто переорганизовал ваш код
Z>
Можно сделать вспомогательные функции приложения таким образом, чтобы ...
// global function
I_DBAdapter MakeDBAdapter(string pFileName) // 1
{
I_DBAdapter lDBAdapter = null;
T_DatabaseInfo lDatabaseInfo = new T_DatabaseInfo(pFileName);
if lDatabaseInfo.DBType = Database.DBType1 then
lDBAdapter = new T_DBAdapter1(pFileName);
elseif lDatabaseInfo.DBType = Database.DBType2
lDBAdapter = new T_DBAdapter2(pFileName);
else
// исключение "неизвестный тип БД
endif
return lDBAdapter;
}
// global function
T_DBGoodsReader MakeDBGoodsReader(string pFileName) // 2
{
T_DBGoodsReader lDBGoodsReader = new T_DBGoodsReader;
I_DBAdapter lDBAdapter = MakeDBAdapter(pFileName); // 1
lDBGoodsReader.SetAdapter(lAdapter);
lDBGoodsReader.Init();
return lDBGoodsReader;
}
... Чтобы их было легче использовать
Class MainForm
{
string mFileName;
void OnButton_ReadDatabase()
{
T_DBGoodsReader lDBGoodsReader = MakeDBGoodsReader(mFileName); // 2
lDBGoodsReader.Read();
// показать на форме список товаров
}
}
--
Я просто переорганизовал ваш код
Z>
Z>Class MainForm
Z>{
Z> string mFileName;
Z> void OnButton_ReadDatabase()
Z> {
Z> T_DatabaseInfo lDatabaseInfo = new T_DatabaseInfo(mFileName);
Z> T_DBGoodsReader lDBGoodsReader = new T_DBGoodsReader;
Z> I_DBAdapter lDBAdapter = null;
Z> if lDatabaseInfo.DBType = Database.DBType1 then
Z> lDBAdapter = new T_DBAdapter1(mFileName);
Z> elseif lDatabaseInfo.DBType = Database.DBType2
Z> lDBAdapter = new T_DBAdapter2(mFileName);
Z> else
Z> // исключение "неизвестный тип БД
Z> endif
Z> lDBGoodsReader.SetAdapter(lAdapter);
Z> lDBGoodsReader.Init();
Z> lDBGoodsReader.Read();
Z> // показать на форме список товаров
Z> }
Z>}
Z>