Текущее время: Сб, сен 13 2025, 20:55

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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