Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Я сказал бы, что эта практика способствует концентрации Ваших усилий на 'пространстве задач', а не 'пространстве решения'. Управление решением на стадии становления (дизайн) путем изучения и действительно узнавания и понимает домен. Один из методов (взятый от XP) был бы записью историй, которые происходят в проблемной области. От них можно определить варианты использования и объекты для дизайна. Они 'появляются' и говорят Вам, какие потребности быть в решении, и как они должны будут взаимодействовать друг с другом.
InfoQ имеют бесплатную электронную книгу:
Доменный Управляемый Дизайн Быстро
Это - хорошее чтение с большим количеством примеров.
В процессе обнаружения "домена" Вы формируете общий язык, это и разработчики и все другие заинтересованные стороны в проекте понимают.
модель предметной области и ее "малопонятный жаргон" довольно заметны в исходном коде для готового изделия. Это - по крайней мере, мой опыт
Важная часть DDD является так называемым повсеместным языком; т.е. говорите на том же языке как бизнес-эксперты. И сделайте свой код / архитектура так, чтобы это отразило этот язык для предотвращения проблем импеданса.
Попытка понять, что программное обеспечение Вы пишете, об и отражая что понимание в модели.
Доменный Управляемый Дизайн об управлении сложностью приложения в модели предметной области, где это может наиболее легко быть дистиллировано.
очень трудно описать в некоторых, приговаривают, но я рекомендовал бы книга InfoQ как хорошее введение. Я также услышал о большом количестве людей, делающих книжный клуб с книгой DDD Evans, которая помогла много в понимании его.
Мне затем находится на одном уровне OOD/ООП, где инкапсуляция - все о пространстве задач, как описано и понято под пользователями, и не так о технической реализации.