所以根据这个用例, 就可以指导你设计接口了, 你就可以很明显的分为2个部分, 注册+发邮件
//根据账号密码注册
void RegisterByAccount(string account, string password)
{
var user = UserDomainService.CreateUserByAccount(account, password); //这里面就可以涉及更详细的业务逻辑了, 比如验证用户名唯一,合法性等等
EmailAppService.Send(....); //发邮件
}
//根据手机号注册
void RegisterByMobile(string mobile, string code)
{
var user = UserDomainService.CreateUserByMobile(mobile, code); //通过手机号和短信验证码, 校验数据合法性等
}
至于三层架构的里面的Controller可以简单理解为 应用程序层, 就是编排用例的执行顺序 (比如,依次调用用户服务提供的注册功能 + 邮件服务提供的发邮件功能)
Service层可以简单理解为业务逻辑层, 处理核心业务的地方, 比如: 用户注册的具体实现
Dao就是 数据访问层, 就是和数据库打交道的, 比如, 用户注册里面就可以用到dao, 用户注册要保证用户名唯一, 里面就可以使用 dao访问数据库, 查看这个用户名是否被占用了,
Dao就是 把数据访问和数据库解耦用的,, 比如你要 从 sqlserver 数据库切换到 mysql数据库, 很多sql都要修改的, 你直接再实现一个 dao就行, 只要在使用的地方一来抽象的接口就行, 不用关心底层是什么数据库, 所以dao就是一个抽象层, 你要是吧查询语句直接写在 Service里面, 要是业务有变动, 你就得修改所有使用的地方了, 累死你 |