Текущее время: Ср, июн 25 2025, 20:05

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по ООП
СообщениеДобавлено: Пн, сен 19 2005, 13:14 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Есть программа процедурно ориетнированная, строящая дерево на классе
cl_gui_simple_tree по таблице ztest.


Нужно реализовать такую же задачу на другой таблице такой же структуры.
Постараться сделать обобщенный вариант

Я решил сделать класс по работе с деревом TreeClass
(названия классов и интерфейсов условные пока что)
Code:
Class TreeClass.
Methods: add_node,
         del_node,
         find_node.
тут еще несколько методов будет


и интерфейс
Code:
Interface IDBaseWork
Methods:  select_data,
          insert_data,
          update_data.


и 2 класса имплементирующие этот интерфейс...
только в реализациях классов будут разные выборки....
вставки и апдейты

Code:
Class CarClass Implementation IDBaseWork.
Methods: select_data,
         insert_data,
         update_data.
и

Class TyreClass  Implementation IDBaseWork.
Methods: select_data, 
         insert_data,
         update_data.


я так полагаю что для регистрации классов по нашей модели
нужно будет еще табличку сделать ...

Тоесть идея такая - например другой программист решил сделать похожую задачу на других таблицах... то ему нужно будет создать класс имплементирующий интерфейс IDBaseWork и все за крутиться завертиться :)

Теперь собственно вопрос - как в головной программе подключать нужный класс в зависимости от транзакции ?

PS. Чуствую как-то через полиморфизм можно выкрутиться ....
но не соображу как... :(

вот... и еще хотелось бы чтобы уважаемые коллеги оценили идею...:)


Последний раз редактировалось Ich Will Пн, сен 19 2005, 13:42, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 19 2005, 13:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Цитата:
как в головном пргорамме подключать нужный класс в зависимости от транзакции ?


Как вариант: Настроечная таблица, которая состоит из пары: "Транзакция - Имя класса".

Далее в программе:

Code:
Data:  iTreeWork type ref to IDBaseWork,
         cls_name(60) type c.
*** Вычитываем имя класса, который имплементирует  интерфейс IDBaseWork
Select  Name_class into cls_name from <table> where <Имя транзакции>.
*** Проверки есть такая пара, есть такой класс и т.п.
CREATE OBJECT iTreeWork TYPE (cls_name).
* Дальше работаем с  интерфейсом.


Цитата:
и еще хотелось бы чтобы уважаемые коллеги оценили идею

Я делал обертку над классом ALV_GRID, а все операции по формированию заголовка грида, загрузке данных, чтению и т.д. выносил во внешние интерфейсы. Это работает и имеет право на существование. :D

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 19 2005, 15:39 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Виктор(Минск) написал:
Я делал обертку над классом ALV_GRID...
Можно подробнее? Хотя бы принцип, для чего это? Ведь есть же оберточные REUSE_ALV_... ф.модули.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 19 2005, 15:42 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Спасибо большое, беру :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 19 2005, 16:09 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Цитата:
Можно подробнее? Хотя бы принцип, для чего это? Ведь есть же оберточные REUSE_ALV_... ф.модули.


На вопрос "Зачем", отвечаю: Хотелось уменьшить объем кодирования. Утомился для CL_GUI_ALV_GRID в каждой программе, как священную мантру, писать код по созданию, "привязыванию" событий к объекту и т.д. и т.п..

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB