Свойства класса java с getter & setter, разве это не должно быть распространено

Я занимаюсь разработкой на Java более 5 лет.

Теперь всегда, когда я начинаю писать новый класс или код, я начинаю с определения свойств моего класса. Поэтому мне нужно будет каждый раз нажимать кнопку "Затмение и получение" для моего разочарования. И это более чистый код, и в конце концов он становится более понятным.

Но мне нравится думать абстрактно и использовать ООП и дженерики. Таким образом, существует либо конкретная причина, по которой людям нужно использовать примитивы Java, либо мы можем просто создать такой класс в Java, чтобы всегда иметь метод получения и установки и при этом оставаться в пределах обычного использования членов класса Java:

public class Property<Type> implements Getter<Type>,Setter<Type>{

protected Type value;

public Property() {

}


@Override
public <T extends Type> void set(T value) {
    this.value = value;
}

@Override
public Type get() {
    return value;
}


public String toString() {
    return value.toString();
}

}

Вы все еще можете использовать модификаторы, чтобы ограничить доступ к переменным, которые вы определяете. Вы по-прежнему будете использовать то же объявление переменных, что и в:

     Class test{

     private Property<Number> priv_floatProperty = new Property<Float>();
     protected Property<Number> prot_floatProperty = new Property<Float>();
     public Property<Number> publ_floatProperty = new Property<Float>();

     }

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

1 ответ

Я думаю, что вы должны использовать дженерики только в случае необходимости.

Во-первых, для удобства чтения.

Во-вторых, вы можете быстро решить проблему стирания Java-типа ( см.). Таким образом, вы можете столкнуться с множеством проблем при сравнении классов (и при использовании соответствующих методов.equals /.hashcode). Я видел несколько сложных случаев, когда единственным решением было использование нечитаемых, сложных и отражений производительности и затрат...

Как и предполагалось, вы можете использовать Lombok для создания абстракции геттеров / сеттеров.

Другие вопросы по тегам