Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Реализация общего интерфейса, C++ Builder / 6 сообщений из 6, страница 1 из 1
22.09.2015, 10:26
    #39058066
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация общего интерфейса, C++ Builder
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
#include <vcl.h>
#include <conio.h>
#pragma hdrstop

#include <tchar.h>
//---------------------------------------------------------------------------

#pragma argsused


struct IDBSession
{
	virtual void Begin( void ) = 0;
	virtual void End( void )   = 0;
};

class TAccess : public IDBSession
{
	public:
	  void Begin( void ) {
		 ShowMessage("TAccess begin");
	  }

	  void End( void ) {
		 ShowMessage("TAccess end");
	  }
};

class TOracle : public IDBSession
{
	public:
	  void Begin( void ) {
		 ShowMessage("TOra begin");
	  }

	  void End( void ) {
		 ShowMessage("TOra end");
	  }
};

class TSession
{
	IDBSession *Session;

		public:
			TSession( int t )
			{
				if( t == 0 )
					Session = new TAccess;

				if( t == 1 )
					Session = new TOracle;
			}

		   ~TSession() {
				delete Session;
			}

			void Begin()
			{
				Session->Begin();
			}
};

int _tmain(int argc, _TCHAR* argv[])
{

	TSession Sean(0);

	Sean.Begin();

	getch();

	return 0;
}




Задача в следующем:
в моем приложение будут использоваться три базы данных. Я хочу реализовать способ единого обращения к этим базам, например как показано выше. Скорее всего это не самый удачный вариант решения это задачи, но думаю общая канва этого примера, и что я именно хочу, ясна.
Хочу чтобы мне вы дали совет.

Я знаю, что можно использовать один универсальный компонент и тому подобное. почему я так не делаю это не ваше дело.
...
Рейтинг: 0 / 0
22.09.2015, 11:52
    #39058159
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация общего интерфейса, C++ Builder
gera3323Хочу чтобы мне вы дали совет.какой совет ты хочешь от нас, о великий?

Хотя, конечно, это ведь не наше дело
...
Рейтинг: 0 / 0
22.09.2015, 11:56
    #39058165
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация общего интерфейса, C++ Builder
gera3323Хочу чтобы мне вы дали совет.
Даю совет: подыми планку абстрагирования с примитивов общения с БД до уровня
бизнес-объектов. Т.е. TDBDriver с кучей методов типа GetSomething, SaveSomething,
EnumSomething. Для разных СУБД - разные наследники от TDBDriver, которые могут совершенно
по-разному эти методы реализовывать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.09.2015, 13:08
    #39058263
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация общего интерфейса, C++ Builder
Dimitry Sibiryakov,

спасибо
...
Рейтинг: 0 / 0
22.09.2015, 18:57
    #39058774
Зимаргл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация общего интерфейса, C++ Builder
Dimitry Sibiryakovgera3323Хочу чтобы мне вы дали совет.
Даю совет: подыми планку абстрагирования с примитивов общения с БД до уровня
бизнес-объектов. Т.е. TDBDriver с кучей методов типа GetSomething, SaveSomething,
EnumSomething. Для разных СУБД - разные наследники от TDBDriver, которые могут совершенно
по-разному эти методы реализовывать.
А мы поржём.
Не буду пояснять почему.
...
Рейтинг: 0 / 0
22.09.2015, 19:17
    #39058790
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Реализация общего интерфейса, C++ Builder
ЗимарглНе буду пояснять почему.
Кто бы сомневался.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Реализация общего интерфейса, C++ Builder / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]