Jimmy Bogard at Los Techies says that he maps his EditModel to Command Messages instead of mapping EditModel to DomainModel. Can anyone explain this further?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
I'd guess it'd be a version of the command pattern that performs the necessary manipulations on the relevant domain objects based on the supplied message. e.g. Something like
public PromoteEmployeeCommand : ICommand {
private readonly PromotionMessage _message;
private readonly IEmployeeRepository _repository;
public PromoteEmployeeCommand(PromotionMessage message,
IEmployeeRepository repository) {
_message = message;
_repository = repository;
}
public void Execute() {
/* Get the employee, give them a rise etc... */
}
}
The mapping from the edit model would resolve to a number of command messages that could be invoked as required (e.g. Give employee a rise, notify their manager, add a note for payroll etc).
The advantage of this approach is that it can isolate your domain model from any presentational concerns exposed by the Edit model.