JAVA setReferenceNull метод в классе - PullRequest
0 голосов
/ 29 ноября 2018

У меня заканчиваются идеи, как реализовать метод void disconnect в классе Connection, чтобы выразить это простым способом: существует класс Connection, который создает до x (определяемых переменной) экземпляров Connection, используя измененный шаблон проектирования Singleton вДругой класс ConnectionManagment выглядит следующим образом:

Connection[] connections = {
    Connection.createConnection(),
    Connection.createConnection()
};

Затем в основном я использую метод connect () для получения ссылки из соединений, например:

Connection c1 = ConnectionManagment.connect();


И теперь возникает вопрос, как мне создать метод void setReferenceNull () в классе Connection, так как все передается по значению в Java, я знаю, что это можно архивировать с помощью метода, подобного:

public Connection disconnect()
{
    return null;
}

И используя это так:

c1 = c1.disconnect();

Но, на мой взгляд, это выглядит как дерьмо, тогда как

c1.disconnect();

Выглядит намного лучше, я довольно новичок в программировании наJava, но я понимаю, спасибо за помощь!

1 Ответ

0 голосов
/ 29 ноября 2018

Ваша логика как-то ошибочна.

Если disconnect() на самом деле имеет пустое тело, то какой смысл иметь этот метод вообще ?!Вы видите: код сообщает намерение.Ваш код ... сообщает мне путаницу.

И если disconnect() действительно "разрывает" ваше соединение, то вы бы разрушили элемент в вашем исходном массиве connections,Поэтому другие клиенты больше не могут использовать эти подключения.Какова цель вашего менеджера тогда и сбора соединений в этом "пуле массивов"?Как только вы сделаете ссылку на член массива "public", любой клиент свободен для disconnect.Тогда как насчет других клиентов?

Так что, в любом случае, ваша логика кажется нарушенной.

Мое предложение: если требуется реальный разрыв, подумайте об использовании try-with-resources.В противном случае, просто забудьте про «отключение».Удалите метод из вашего интерфейса и забудьте о клиентах, вызывающих метод NOOP (пустой) без причины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...