2015-09-05 4 views
0

Мне нужно разобрать ответ JSON и вернуть объекты, которые хранят его данные. Но я не уверен, какое решение является более «памяти людей»:Java - Поля против реализованных методов

Метод 1: Поля

public class MyElement { 

    private int var1; 

    public MyElement(int var1) { 
     this.var1 = var1; 
    } 

    public int getVar1() { 
     return var1; 
    } 

} 

Метод 1,1: Прямой доступ на поле.
Способ 1.2: Использование строителей/фабрик.

Метод 2:

public interface MyElement { 
    int getVar1(); 
} 

// In Code 
return new MyElement() { 
    @Override 
    public int getVar1() { 
     return 5; 
    } 
} 
+1

Я бы не написать такую ​​вещь: Используйте Джексон. Это требует, чтобы ваши объекты соответствовали стандартам Java Bean. Не беспокойтесь о дружественной памяти, пока вы не профилировали свое приложение и данные не говорят о наличии проблемы. – duffymo

ответ

0

Side Примечание: public getVar1() не компилируется. Любая разница между методами 1, 1.1 и 1.2 является незначительной (хотя 1.1 является изменяемым, если вы не создаете свое поле final), но я бы использовал метод 1. Это происходит потому, что с помощью метода 2 создается новый (анонимный) класс. Если это выполняется много раз, создается множество классов. Разумеется, такие различия, как правило, не имеют значения, если в действительно массовом масштабе, поэтому не делайте память проблемой, если она не одна.

0

Я думаю, что Java Bean Standard - это лучший подход, который следовал в большинстве реализаций разработки программного обеспечения.

У меня есть хорошие ссылки ссылки для вас, ниже которого будет объяснить подробности о ваших сомнениях:

Places where JavaBeans are used?

When would you use the Builder Pattern?