@hell4eg

Правильное обращение к методам из других классов?

Учу Яву, пишу парсер. Хочу спросить совета по поводу правильносьти вызова методов из других классов.
У меня есть классы, в каждом из которых реализованы методы для сканирования какой-то информации.
Например класс Address реализует поиск адреса и поиска ссылки на карте и имеет соотвественно методы getAddress() и getMapUrl().
Классов и методов много поэтому я вынес в отдельный класс создание экземпляров, получается я один раз создаю экземпляр Info info = new Info(); и потом чтобы обратиться к методу пишу так :
info.newAddress.getAddress(); (newAddress - создаёт новый экземпляр Address)
Собственно хотелось бы узнать правильно ли делать так, либо есть какой-то более разумный способ.
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
@nirvimel
Вы как-то неправильно понимаете суть ООП. Классы служат не для группировки методов (в которых вы видите только процедуры), для этого существую модули. В ООП классы служат цели инкапсуляции данных. Но если вы используете класс как кучу процедур, то создание экземпляра такого класса не имеет смысла, лучше объявить все методы как статические и вызывать их из самого класса без создания экземпляра. Только такой подход не имеет ничего общего с ООП.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@sanluck
программирую на java
nirvimel вам говорит правильно, нужно определиться для чего вы используете классы, т.е. подтянуть "матчасть" :)
Если вам просто нужны "группировки" методов, то нужно делать классы вроде AddressUtils - т.е. вспомогательный класс, в котором будут статические методы, которые будут делать какие то определённые действия.
Т.е. есть у вас, например, класс Address :
public class Address {
        String street;
        String house;
        String flat;
        // getters
        // setters
}


И вы хотите чтобы при передаче экземпляра этого класса в ваш вспомогательный метод выводилась бы, например, человекочитаемая форма адреса :
public class AddressUtils {
        public static String getAddressString(Address address) {
            if (address == null) {
                return "";
            }
            StringBuilder sb = new StringBuilder("");
            sb = sb.append(address.getStreet() == null || address.getStreet().isEmpty() ? "" : address.getStreet());
            sb = sb.append(address.getHouse() == null || address.getHouse().isEmpty() ? "" : address.getHouse());
            sb = sb.append(address.getFlat() == null || address.getFlat().isEmpty() ? "" : address.getFlat());
            return sb.toString();
        }
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы