Я читал две статьи (1) (2) на javaworld.com о том, как все поля класса должны быть приватными, а методы getter/setter - это также плохо. Объект должен воздействовать на данные, которые он имеет, а не разрешать доступ к нему.
В настоящее время я работаю над присвоением Университета Connect Four. При разработке программы агенты, играющие в Игру, нуждаются в доступе к государству Совета (чтобы они могли решить, что двигаться). Им также необходимо передать этот ход в игру, чтобы он мог проверить его как законный ход. И при принятии решения о том, что перемещать куски, группируются в Угрозы с начальным и конечным точками.
Объекты Board, Threat и Point на самом деле ничего не делают. Они находятся там, где хранятся связанные данные, доступ к которым можно получить с помощью человека.
В начале проектирования я представлял Points на доске как два элементаных массива int, однако это раздражало при создании точек или ссылок на их компоненты.
Итак, класс:
public class Point {
public int x;
public int y;
public Point(int x, int y){
this.x = x;
this.y = y;
}
}
Совершенно во всех отношениях я могу думать. Кроме того, это нарушает каждое правило, которое я узнал. Согрешил ли я?