Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.47.253] |
|
Сообщ.
#1
,
|
|
|
Доброго времни суток.
есть заковырка, которую не знаю как изобразить элегантно. В java нет множественного наследования классов, как C++, но есть множественное наследование интерфейсов, и куча всего другого полезного. Ну так вот, чего хочу: нечто, вроде "множественного" наследования. Опишу задачу, словами, может кто пнет в каком направлении копать. Итак, у меня есть обертка над java.sql.Connection, java.sql.ResultSet, java.sql.Statement и прочим полезным, для работы с БД. Назовем этот класс, ну, скажем SomeConnection. Также у меня есть несколько разных СУБД, и поэтому я наследовал SomeConnection несколько раз, с разным способом инициализации, для доступа к нужной СУБД. Допустим получил классы OracleConnection, MSSQLConnection, MySQLConnection, PostgreSQLConnection и т. п. Пока все понятно и хорошо. Теперь у нас есть пользовательские GUI. Причем на java можно использвоать кучу всего полезного от swing`а до javafx`а. Какие-то базовые действия (заполнение таблицы, списка, дат и прочих визуальных компонент) на основании запросов на выборку можно тоже взять и объединить в обертку. тут вопросы-сомнения-неопытность: 1. я не хочу расширять класс SomeConnection. Меня устраивает, то что его потомков можно использвоать без привязки к GUI 2. Я не хочу наследовать каждый из классов OracleConnection, MSSQLConnection, MySQLConnection, PostgreSQLConnection и т д для того что бы добавлять (дублировать) обозначенные методы для gui действий (в том числе посредством интерфейсов). 3. Было бы неплохо создать класс для gui методв, порожденный от SomeConnection, который бы можно было реализовать один раз, и затем как-то использовать совместно с конкретными классами для разных СУБД (этакое множественное наследование, например, OracleConnection и этого GUIConnection`а) Выше - мои страдания, но может быть решение возможно достичь как-то проще? |
Сообщ.
#2
,
|
|
|
реализовать гуёвые функции в постороннем классе, который будет использовать выданный ему объект соединения на манер стратегий в одноимённом шаблоне
|
Сообщ.
#3
,
|
|
|
Композиция... да... возможно, если не получиться классического ООП.
|