В чем разница между сущностью и классом? - PullRequest
33 голосов
/ 31 марта 2010

Является ли сущность экземпляром класса?

Ответы [ 6 ]

44 голосов
/ 31 марта 2010

A class является шаблоном для объекта (среди прочего) и является очень общей концепцией.

сущность имеет более семантическое значение и обычно связана с концепцией (возможно, о реальном объекте, например, Сотрудник или Студент или Музыкальный альбом ) и связан с бизнес-логикой.

Объекты обычно используются для установления соответствия между объектом и таблицей в базе данных. Объекты также известны как доменные объекты. Как я уже упоминал ранее, сущности будут использоваться в ситуациях, когда существует бизнес-логика и, как таковая, она содержит информацию о системе (или части системы), которую она моделирует.

10 голосов
/ 25 декабря 2015

Чтобы добавить еще одну точку

Класс является синтаксическим , т. Е. Набором или категорией вещей, имеющих какое-либо общее свойство или атрибут и отличающихся от других по виду, типу или качеству.

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

Объект - это значение в памяти, на которое ссылается идентификатор, это экземпляр класса.

enter image description here

7 голосов
/ 31 марта 2010

сущность обычно относится к чему-то, что-то действительно, что имеет уникальное и отдельное существование.

В разработке программного обеспечения это слово почти используется только для обозначения того, что один экземпляр отличается от другого, и они не зависят друг от друга.

A class , с другой стороны, определяет или содержит определение объекта . Как только этот объект построен на основе определения, вы получаете экземпляр или экземпляр объекта .

3 голосов
/ 08 июня 2012

Коротко - да.

Сущность - это скорее концепция из реального мира. Экземпляр (псевдоним объекта) - из мира программирования.

В мире программирования у нас также есть понятие "сущность", но здесь это скорее дочерний элемент экземпляра. Таким образом, любая сущность является потомком экземпляра. Также у сущности есть ссылки на другие вещи, кроме программирования - например, как говорили люди - у сущности может быть таблица в БД. Экземпляр не может иметь таблицу в БД. Как экземпляр всегда связан с классом.

2 голосов
/ 31 марта 2010

объект - это объект , который имеет состояние, поведение и идентичность. Структура и Поведение подобных объектов определяется в их общем классе. Термины экземпляр и объект являются взаимозаменяемыми.

Из Книга Грэди Буча .

Таким образом, мы можем сказать, что сущность, объект и экземпляр класса являются взаимозаменяемыми.

1 голос
/ 05 ноября 2018

Я копирую из эту статью , «Парадигма программирования на основе сущностей», Нимит Сингхания. Университет Пенсильвании:

Сущность - это абстрактная единица, представляющая группу узлы или дочерние объекты. Он использует услуги, предоставляемые его суб-сущности и сотрудничество между этими суб-сущностями для достичь своих требуемых целей. Он имеет свою собственную идентичность и появляется как единое целое с внешним миром, как в реальном Жизнь команда или организация представляет собой единое целое, а не просто коллекция лиц. Распределенная система по существу иерархия сущностей, где каждая сущность играет определенную роль и предоставляет конкретные услуги [...]

[...] Абстракция сущности очень похожа на объект в объекте ориентированное программирование. Ключевое различие между объектом и сущность является то, что сущность является активной и живой единица, в то время как объект пассивен. Сущность состоит из живых существ взаимодействуя друг с другом, чтобы предоставить услугу и может взаимодействовать с другими объектами. Принимая во внимание, что объект состоит только из статических полей и свойств, которые могут быть запрошенный и управляемый внешним миром. Но многие Выводы из объектно-ориентированного программирования могут быть перенесены к этой парадигме программирования. Мы можем иметь классы и типы объектов, где класс может предоставлять конкретные услуги и функциональность для остальной части системы. Также, мы могли бы определить абстрактные объекты, которые реализуют ядро структура и некоторые основные протоколы для взаимодействия между узлы, и они могут быть расширены, чтобы реализовать фактическую юридические лица. Точно так же мы могли бы определить интерфейсы, которые определяют набор услуг. Эти интерфейсы могут быть реализованы несколько организаций с различными гарантиями и на основе требования, один из них может быть выбран программистом предоставить необходимую услугу.

...