Java классы - лучшая практика с конструкторами (Android) - PullRequest
0 голосов
/ 11 октября 2011

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

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

Должен ли я использовать эти ссылки в конструкторе класса или это плохая практика?

Спасибо, м

, вот простой пример общего характера, запрошенный в комментариях ...

  public class carDbHelper  extends SQLiteOpenHelper{
      public static final int ROW_ID = 0;
      public static final int ROW_TYPE = 1;

      ...// all db helper code omitted

  }


 public class Car{
            private int id; 
            private String type; 

            public Car (Cursor c){
               this.id = c.getInt(carDbHelper.ROW_ID);
               this.id = c.getString(carDbHelper.TYPE_ID);
            }

        //Other code omitted
     }

1 Ответ

1 голос
/ 11 октября 2011

Либо копирование объекта, либо обращение к объекту - это хорошо, проблема в том, что вам нужно хорошо контролировать время жизни объекта.

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

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