Методы утилизации, которые требуют определенных объектов в Java - PullRequest
0 голосов
/ 30 ноября 2018

Мне было просто интересно, существует ли какой-либо способ утилизации метода в Java, который повторяется в классах одного уровня, потому что им нужен конкретный объект.

Давайте рассмотрим пример:

public void refreshSearch(){
    try{
        String search = bookDialog.getTxtBrowser().getText();
        bookBusiness.searchByString(search, bookDialog
            .selectedItemToString(bookDialog.getCmbBrowser())); 
        bookDialog.getTbBooks()
            .setModel(new BookTableView(bookBusiness));
        setBookTableTitles();
    }
    catch(SQLException ex){System.out.print(ex);}
}

А затем:

public void refreshSearch(){
    try{
        String search = studentDialog.getTxtBrowser().getText();
        studentBusiness.searchByString(search, studentDialog
                .selectedItemToString(studentDialog.getCmbBrowser())); 
        studentDialog.getTbStudents()
                .setModel(new StudentTableView(studentBusiness));
        setStudentTableTitles();
    }
    catch(SQLException ex){System.out.println(ex);}
}

Дело в том, что у меня есть два равных метода только потому, что им требуется особый тип объекта.

Решение, которое мне только что пришло в голову, - это получить универсальный параметр Object, а затем проверить класс и создать соответствующие экземпляры, но если этот метод используется тремя различными классами, мне нужно создать шестьобъекты, и только два из них будут использоваться (остальные четыре будут нулевыми).Поэтому мне пришлось бы создавать длинную структуру только для каждого объекта.

Существует ли в Java какой-либо способ решения этой проблемы?

Большое спасибо!

1 Ответ

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

Это можно решить с помощью интерфейсов.Таким образом, вы можете создать интерфейс Dialog с методами getTxtBrowser () и getTbStudents () и бизнес-интерфейс с методом searchByString, а затем создать классы реализации для этого интерфейса для StudentDialog и BookDialog, StudentBusiness и BookBusiness.Таким образом, вы можете создать один метод, который использует интерфейс, и он будет выполнять методы в ваших реализующих классах.

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