2011-12-30 2 views
2

UPDATE:лучший способ создать модель дизайна домена?

то, что я ищу это я должен идти создать каждый классы seprately вместо добавления геттер/сеттер опору в классе, что я имею в виду, что:

так, чтобы создать посещения я должен иметь следующую опору в ВИЗИТОМ

VisitName, Purpose, StartDate, EndDate, HostId, HostName, RequesterId, RequeserName 

или я должен иметь это:

VisitName, Purpose, StartDate, EndDate, IPerson Host, IPerson Requester 

END UPDATE

Мне нужен совет/обратная связь, если я иду в правильном направлении ниже, это модель домена (часть проекта не входит).

У меня есть класс под названием «Посещение» в этой модели посещения. У меня будет основной вид посещения, например имя, цель, начало, дата окончания и т. Д. ... и в этом классе у меня также есть кто будет посещать этот визит и кто просит визит.

Что вы думаете о классе ниже?

enter image description here

//aggreate class 
public class Visit 
{ 
    IVisitBasic _visitBasic; 
    IPerson _host; 
    IPerson _requester; 

public IVisitBasic VisitBasic 
{ 
    get { return _visitBasic; } 
    set { _visitBasic = value; } 
} 

public IPerson Host 
{ 
    get { return _host; } 
    set { _host = value; } 
} 

public IPerson Requester 
{ 
    get { return _requester; } 
    set { _requester = value; } 
} 

public Visit(IVisitBasic visitBasic, IPerson host, IPerson requester) 
{ 
    _visitBasic = visitBasic; 
    _host = host; 
    _requester = requester; 
} 

public Visit() { } 

}

+2

Лучше спросить на http://codereview.stackexchange.com. –

+0

Спасибо, что не знал об этом. –

+1

Да, есть много разных форумов, и теперь у нас будет один из преимуществ кухонной мойки. – eaglestorm

ответ

0

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

Другие пункты быстрого обзора.

  • В чем заключается цель VisitBasic, должен ли он быть абстрактным базовым классом или именем, понятным?
  • Возможно, вы захотите сделать хост в своем классе, он может иметь информацию, не относящуюся к классу person, поэтому возможно подкласс класса. Но, как указано выше, может быть лучше разработать его итеративно. И, возможно, и запросчик, но, вероятно, менее вероятно.

UPDATE РЕПЛИКА: Стандартная конструкция в настоящее время для большинства вещей, чтобы добавить слой службы, т.е. VisitService с методом createVisit, и свойство объекта посещения просто должно быть связанно с хостом и запрашивающим без какого-либо бизнеса логики в них. (Надеюсь, что ответит на ваш вопрос?)

+0

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

+0

так, где бы вы положили бизнес-логику? в модели? –

+0

Вы в основном разделяете ваше приложение на слои, то есть уровень доступа к данным, слой модели, уровень обслуживания, слой gui и т. Д. С собственными объектами. но на самом деле зависит от типа приложения, которое вы строите, должны быть некоторые стандарты, то есть у Microsoft есть библиотека шаблонов и практик, и вокруг них много шаблонов дизайна. – eaglestorm

Смежные вопросы