В чем разница между компонентом данных, компонентом java и структурой данных - PullRequest
0 голосов
/ 25 февраля 2020

Изучая Apache Гора , я узнал термин бин данных. Это можно считать структурой данных для хранения данных или что-то еще.

Более того, существует аналогичный термин "Java бобы". Это так же, как бин данных? В чем разница между этими тремя терминами?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Существует множество других stackoverflow вопросов, но общее название этих терминов может быть неясным.

Давайте сначала попробуем определить, что может быть «бином».
Бин может быть экземпляром некоторого объекта, который содержит некоторые данные в своем состоянии.
Термин бин также используется для описания некоторого вида многоразового программного компонента.

Термин JavaBeans относится к стандарту и соглашению для определения объекта. Этот термин был создан, потому что стандарт, который он описывает, позволяет иметь методы, работающие с объектом, не зная его точного типа (например, сериализация).
Поскольку этот вопрос хорошо описывает его, нет большой разницы между JavaBean или другим классом. Если класс следует этому стандарту, он становится JavaBean.

Существует также Enterprise Java Beans (EJB) , это часть JEE API. Этот API-интерфейс определяет способ реализации бизнес-логики c в качестве серверных компонентов (EJB работает в веб-контейнерах JEE).
И Spring Beans из Spring Framework. Эти компоненты являются объектами, которые создаются, собираются и управляются контейнером Spring Io C. Они позволяют использовать преимущества внедрения зависимостей и инверсии управления при реализации приложений Spring.

Сокращение до погони.
ссылка , которую вы вложили, четко определяет назначение компонента данных в Apache Гора:

Данные bean-объекты - это основной способ хранить данные в памяти и сохранять их в Gora.

"bean-компонент" в данном документе относится к общему пониманию экземпляра некоторой структуры данных, определенной в соответствии с некоторыми стандартами. «Данные» просто указывают на то, что они содержат некоторые значения или более вероятно, потому что называть их просто «бином» было бы немного глупо.

Имена перед "bean" в EJB, Spring Beans, JavaBeans описывают контекст конкретного bean-компонента. Точно так же в Apache Горе «боб данных» говорит, что мы имеем дело с экземпляром некоторой структуры данных, определенной типом этого «боба данных».

Не существует конкретного термина "bean-объекта данных", который мог бы ссылаться на что-то другое, кроме структурированных данных или значений.

И, наконец, почти все вышеперечисленное - это структуры данных , поскольку структура данных «представляет собой формат организации данных, управления и хранения, который обеспечивает эффективный доступ и модификацию». Таблицы, списки, стеки, строки, а также объекты являются типами структур данных.

0 голосов
/ 25 февраля 2020
  1. Объекты данных - это основной способ хранения данных в памяти и их сохранения в Горе.

  2. Структурно, если вы видите, что объекты данных Gora выглядят как java bean-компонентов, но некоторые AVRO указывают c различия следующим образом

    • Эти bean-компоненты данных содержат объявление встроенной схемы Avro и внутреннее перечисление с именем Field. Это перечисление пригодится, когда мы запросим хранилище данных для указанных c полей

    • Использует класс Utf8 в качестве заполнителя для строковых полей

После прочтения определения Java Beans в вики "JavaBeans - это классы, которые инкапсулируют множество объектов в один объект (компонент). Они сериализуемы, имеют конструктор с нулевым аргументом и разрешают доступ свойствам, использующим методы получения и установки. Имя «Bean» было дано для охвата этого стандарта, целью которого является создание программных компонентов многократного использования для Java "

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

А структура данных - это не что иное, как способ организации данных в программах или на компьютере, чтобы их можно было эффективно использовать.

Пример структуры компонента данных в GORA

public class Pageview extends PersistentBase {

private Utf8 url;
private long timestamp;
private Utf8 ip;

public static final Schema _SCHEMA = Schema.parse("{\"type\":\"record\", ... ");
  public static enum Field {
  URL(0,"url"),
  TIMESTAMP(1,"timestamp"),
  IP(2,"ip"),
  HTTP_METHOD(3,"httpMethod"),
  HTTP_STATUS_CODE(4,"httpStatusCode"),
  RESPONSE_SIZE(5,"responseSize"),
  REFERRER(6,"referrer"),
  USER_AGENT(7,"userAgent"),
  ;
  private int index;
  private String name;
  Field(int index, String name) {this.index=index;this.name=name;}
  public int getIndex() {return index;}
  public String getName() {return name;}
  public String toString() {return name;}
  };
  public static final String[] _ALL_FIELDS = {"url","timestamp","ip","httpMethod"
  ,"httpStatusCode","responseSize","referrer","userAgent",};
}
...