关于解耦 分布式部署 架构 设计模式的疑问

来源:互联网 发布:工艺流程软件软件 编辑:程序博客网 时间:2024/05/17 01:17

 已知:  假设A层引用C层   中间层是B

1解耦方法:抽象工厂 abstractFactory   使用反射创建类的实例  

                                   例如调用DAL层    这样不用new DAL类的实例,不用引用该命名空间,实现解耦  ,只返回一个IDAL类型的对象  完全和DAL脱离关系

                                   当修改模型框架的时候,只需修改web.config中的程序集和命名空间名称和接口(抽象工厂类)而不用修改每次调用或创建类的代码


                                  作用:解决了被调用层改变的问题,减少要修改的代码量,解决了各层部署在不同服务器的问题(添加引用只能引用本地dll文件)

             2面向接口编程    引用的时候如果没有特殊需求,只需要引用接口层(IDAL)   不需要引用本来的层(DAL)   

                接口的作用:例如IDAL  当DAL发生改变的时候  业务层不需要改变,只要新的DAL继承了IDAL接口

             3一个层(c)部署在了哪个服务器  ,被调用的时候就在哪个服务器(c)执行,其他服务器(A)虽然也有这个层的对象(接口对象) 但是只能调用接口其中的方法,具体实现还要到该具 体的被部署的服务器(c),A层 所在的服务器有C , B层所在的服务器也有C(不确定)


疑问:

         1 如果一个项目的N层分别部署在不同的服务器上,中间层是和调用的层还是被调用的层部署在同一台服务器上(是不是中间层/接口层在两边都要部署)

         2   A引用C层的时候 dll文件也会被引用过来,那在执行被调用的C层的代码的时候,是运行引用过来的A层dll还是C层自己的dll文件

        3    整体的项目之间各层调用的流程及数据传递

0 0
原创粉丝点击