На самом деле это действительно отличный вопрос, и краткий ответ: «Вы можете». Мы привыкли делать это таким образом, и существовала целая область моделирования предприятия (данных). Фактически, общие обозначения OOD произошли от ERD.
Однако мы обнаружили, что такие проекты, основанные на данных, имели некоторые трудности, и самая большая из них заключалась в том, что естественная структура базы данных не обязательно хорошо соответствовала естественной структуре кода.
OOD в значительной степени проистекает из желания упростить поиск структуры кода, обладающей несколькими желаемыми свойствами:
- дизайн должен быть легко продуман
- оно должно быть устойчивым при изменениях.
Простота продумывания дизайна происходит от Simula, которая использовала то, что мы сейчас называем «объектами» для моделирования; в симуляции было удобно иметь программные объекты, которые соответствуют вещам, которые вы моделируете. Только позже Алан Кей и его коллеги из Xerox увидели в этом более общий метод структурирования.
У части, касающейся устойчивости к изменениям, было много родителей, но одним из наиболее важных среди них был Дейв Парнас, вы написали несколько работ, которые определили основное правило для модульности, которое я называю Законом Парнаса: каждый модуль должен сохранять секрет, и этот секрет - требования, которые могут измениться.
Оказывается, что, комбинируя Закон Парнаса с идеей Симулы о «объекте», соответствующем чему-то, что может быть отождествлено с реальным миром, вы стремитесь получить конструкции систем, которые являются более надежными В соответствии с требованиями изменений, чем старый способ, которым мы делали вещи. (Не всегда, и иногда вам нужно быть хитрым, как в случае с шаблоном Command . Большинство объектов являются существительными, то есть имеют постоянное существование. В шаблоне Command идеальными объектами являются глаголы вещи, которые вы делаете .)
Однако, оказывается также, что эта структура не обязательно является хорошим способом представления базовых данных в реляционной базе данных, поэтому мы сталкиваемся с проблемой «несоответствия реляционного импеданса объекта»: как представить преобразование из объектной области в базу данных-землю.