powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Различные реализации интерфейса
6 сообщений из 6, страница 1 из 1
Различные реализации интерфейса
    #39463527
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда сталкиваюсь с данной проблемой и хочу узнать, как лучше ее решать

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public interface ICommon {
	Client readClient(String firstName, String lastName);
}

public class OracleDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName) {
	}
}

public class MySQLDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName) {
	}
}

public class PGDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName) {
	}
}



Так получилось, что например для начитки данных из Oracle понадобился еще 3 параметр, как правильно реализовать это
Добавить в интерфейс еще один метод?

Код: sql
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.
public interface ICommon {
	Client readClient(String firstName, String lastName);
	Client readClient(String firstName, String lastName, String middleName);
}

public class OracleDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName) {
	}
	@Override
	public Client readClient(String firstName, String lastName, String middleName) {
	}
}


public class MySQLDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName) {
	}
	@Override
	public Client readClient(String firstName, String lastName, String middleName) {
		retrun readClient(firstName, lastName);
	}
}

public class PGDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName) {
	}
	@Override
	public Client readClient(String firstName, String lastName, String middleName) {
		retrun readClient(firstName, lastName);
	}
}



Или изменять существующий?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public interface ICommon {
	Client readClient(String firstName, String lastName, String middleName);
}

public class OracleDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName, String middleName) {
	}
}


public class MySQLDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName, String middleName) {
	}
}

public class PGDao implements ICommon {
	@Override
	public Client readClient(String firstName, String lastName, String middleName) {
	}
}



То есть и тот и то я не считаю идеальным, для MySQLDao и PGDao появляется либо лишний метод, либо лишний параметр.
Может есть более элегантный вариант?
...
Рейтинг: 0 / 0
Различные реализации интерфейса
    #39464268
ermak.nn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А через абстрактный класс не лучше будет?
с методом
Код: java
1.
2.
3.
public Client readClient(String firstName, String lastName, String middleName) {
    return readClient(firstName, lastName);
}
...
Рейтинг: 0 / 0
Различные реализации интерфейса
    #39465759
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-,

Есть такая концепция -- версии интерфейсов... Если что, смотреть в COM/OLE.
...
Рейтинг: 0 / 0
Различные реализации интерфейса
    #39468186
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv-=Koba=-,

Есть такая концепция -- версии интерфейсов... Если что, смотреть в COM/OLE.
А можно более подробнее, в каком направлении гуглить...(
...
Рейтинг: 0 / 0
Различные реализации интерфейса
    #39478647
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-Так получилось, что например для начитки данных из Oracle понадобился еще 3 параметр, как правильно реализовать это
Добавить в интерфейс еще один метод?
Получается что либо для Oracle нужен свой отдельный интерфейс,
либо этот третий параметр - это поле класса который имплементит нужный интерфейс (но не аргумент в методе)
...
Рейтинг: 0 / 0
Различные реализации интерфейса
    #39478864
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдарим паттернами по бездорожью. Parameter Object .
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Различные реализации интерфейса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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