В одном из интервью, с которым я столкнулся, меня попросили реализовать пул соединений. Итак, подход был такой:
Список
или HashMap
ConnectionImpl
Метод getConnection ()
класса ConnectionPoolingImpl
вызывается, возвращает ссылку на соединение. Теперь, когда кто-то возвращает соединение ( releaseConnection (ConnectionImpl O)
), как я могу убедиться, что когда одно и то же приложение снова пытается повторно использовать объект подключения, моя реализация выдает исключение?
Тот же объект подключения мог быть возвращен новому приложению, и оно должно иметь возможность его использовать.
Моя точка зрения Представление могло бы поддерживать переменную флага в структуре другого типа массива для каждого объекта Connectionimpl
и устанавливать для этой переменной допустимое значение. Когда пользователь возвращает объект подключения, я сделал бы это некое недопустимое значение. Для каждой операции в моем ConnectionImpl
мне нужно будет проверять, был ли у пользователя действительный флаг.
Что вы скажете на этот подход?