Soa的服务设计的一点困惑

13-08-11 zdp120
    

最近在初学Soa服务设计系统,有一点不是很清楚,具体的情况是这样的:

想设计一个可以做知识问答的服务,其中有Question服务,Answer服务,questionTag服务,我不太明白的地方是,question服务与qustiontag服务,以及answer服务之间的调用如何实现,比如回答一个问题的时候

answer服务,需要获取question相关的信息的时候,是通过question服务(http://application/questionQueryservice?wsdl),

public class AnswerService

{

public void AddAnswer(string htmlBody)

{

//通过web services调用获取

QuestionQueryserviceClient client=new QuestionQueryServiceClient();

var question=client.find(questionId);

etc....

}

}

来获取question,

还是像ddd中的直接取得question相关信息

public class AnswerService

{

private readonly IQuestionQueryService queryService;

public AnswerService(IQuestionQueryService queryService)

{

this....etc....

}

public void AddAnswer(string htmlBody)

{

//因为在一个组件,可以直接注入一个QuestionQueryService实例

var question=queryService.find(questionId);

etc....

}

}

    

xianghx
2013-08-12 22:16

下面的好一些吧,DI可以在客户端调用。不过这跟DDD有什么关系?