Создание классов модели в приложениях на основе MVC - PullRequest
0 голосов
/ 03 марта 2012

Я учусь Spring MVC. И в большинстве примеров и учебных пособий я видел, что простой класс Model создается путем определения частных переменных и предоставления для них методов установки и получения

например, как показано ниже

public static class Person  {

    private String firstName;
    private String lastName";

     public String firstName() {
        return firstName;
    }

    public void firstName(String bar1) {
        this.firstName = firstName;
    }

    public String lastName() {
        return lastName;
    }

    public void lastName(String bar2) {
        this.lastName = lastName;
    }

}

Но я могу определить вышеприведенный класс, просто определив публичные переменные, поскольку я не выполняю никакой обработки в методе getters и setters, как показано ниже

public static class Person  {
    public String firstName;
    public String lastName";
}

и доступ к нему как

Person objPerson = new Person();
objPerson.firstName = 'Mickey';
objPerson.lastName = 'Mouse';

Я понимаю, что этот подход не очень динамичен в том смысле, что если позднее я решу поместить некоторую логику обработки в методы получения и установки, тогда мне, возможно, придется изменить все мои клиентские объекты, чтобы они изменились, чтобы использовать методы получения и установки. но это все или есть другие последствия, если я пойду по этому пути?

Ответы [ 2 ]

0 голосов
/ 03 марта 2012

Основной аргумент в пользу создания геттеров и сеттеров - для улучшенной инкапсуляции в объектно-ориентированном смысле. Когда у вас есть объект, вы взаимодействуете с объектом через его открытый интерфейс. Получая прямой доступ к переменным экземпляра, вы больше не взаимодействуете с объектом, а скорее с его внутренней реализацией.

Идея заключается в создании черного ящика, в котором скрыты внутренние органы. Метод получения / установки может отправляться в базу данных, файловую систему или локальную переменную экземпляра для извлечения данных модели. Если эти базовые источники данных изменятся в более позднем обновлении, вам нужно будет только изменить методы getter / setter, тогда как если вы обращаетесь к переменным напрямую, вам придется реорганизовать всю вашу базу кода.

0 голосов
/ 03 марта 2012

Забудь об этом.Придерживайтесь private полей и public геттеров / сеттеров.Любая Java IDE может генерировать их на основе полей.Большинство фреймворков зависит от методов получения / установки (JPA является заметным исключением в полевом режиме) согласно стандарту JavaBeans.

Избавьте себя от многих головных болей и просто используйте стандартный подход.К сожалению.

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