系统架构简单图解
1.三层架构:
说明:
A.UI依赖于IBLL,UI通过BLL层的唯一入口(门面模式、工厂模式)来获得相应的业务服务对象(业务服务对象以业务为原则创建,比如:处理用户相关的业务,可定义UserService类);UI层不应包含任何的逻辑代码(最多只允许包含一部份与UI相关的逻辑)
B.BLL层中处理UI发过来的请求,并及时进行相应的处理(数据验证,向DAL层发送查询数据或持久化数据等),处理后返回UI所需的资源;BLL层依赖于IDAL,同样BLL通过DAL层的唯一入口(门面模式、工厂模式)来获得相应的数据访问对象(数据访问对象以业务所需数据或数据表为原则创建,比如:支付,可定义:PayDao类,类中包含账号信息、付款人信息、金额等);
C.DAL层处理BLL层发过来的请求,并及时向DB发送查询数据或保存数据的命令,获得资源后返回给BLL层;
2.MVP架构:
说明:
A.UI层(即:VIEW层)依赖于IPresenter接口,同时实现IView接口;UI层需初始化相应的Presenter对象,并将自己传给Presenter对象;被动接收Presenter的处理请求;
B.Presenter依赖于IView接口,同时实现IPresenter接口,Presenter主动处理UI层反馈的请求(UI层向Presenter反馈的方法:一是VIEW中定义响应事件委托,Presenter订阅并监听;二是VIEW中直接通知Presenter),Presenter中的处理UI层反馈请求的方法不应包括返回值,甚至可以不要参数,因为这些仅是UI层通知Presenter的入口,UI层并不会主动传送或接收返回值,处理完后,通知UI作出相应的处理;
C.Model层负责处理Presenter发过来的请求,并及时向DB发送查询数据或保存数据的命令,获得资源后返回给Presenter;
3.MVC架构:
说明:
A.用户访问页面时,通过定义的路由映射规则找到指定的Controller及Action;
B.Action接到用户请求后向Model层发送相应的处理请求,MODEL层作出相应的处理后返回处理结果给Action,Action得到处理结果后及时返回相应的处理结果(ActionResult:包含视图及其关联的数据)到视图引擎,视图引擎找到相应的视图;
C.View层呈现Action返回的结果;
4.DDD架构:
说明:
A.UI层依赖于应用层及基础设施层,UI主要负责响应用户请求,并呈现用户请求的结果;
B.应用层依赖于领域层及基础设施层,接收UI层发送过来的请求,并将请求转换成相应的领域事件且发送给领域层相应的领域对象;
C.领域层依赖于基础设施层,领域对象接收并响应应用层发送过来的请求,处理完成后返回给应用层;
D.基础设施层不依赖于任何其它层,该层包括数据持久化、通用业务逻辑等,供各层调用;