公司做的网站系统是按三层架构设计的.
三层分别为 Web,Bunisess,DataBase. 为了避免静态方法带来的不便,所以我在web层分别将业务层和数据层实例化.在DataBase层,我用到了一个Web层的方法,所以我在 DataBase层对Web层也实例化,来引用.结果一运行,便出现了StackOverFlow错误,在PageLoad上断点无效,因为实例化先 PageLoad.最终找到原因,因为当对DataBase实例化时,他不去执行每个方法,但他对一些变量声明,实例引用等要进行检验,当执行到Web的 实例化语句时,DataBase又去调用Web层,也就是这样,形成了一个死循环.导致栈溢出.
所以在此说明,n层架构的设计中,先要从下之下分出父子关系,避免逻辑混乱!
三层分别为 Web,Bunisess,DataBase. 为了避免静态方法带来的不便,所以我在web层分别将业务层和数据层实例化.在DataBase层,我用到了一个Web层的方法,所以我在 DataBase层对Web层也实例化,来引用.结果一运行,便出现了StackOverFlow错误,在PageLoad上断点无效,因为实例化先 PageLoad.最终找到原因,因为当对DataBase实例化时,他不去执行每个方法,但他对一些变量声明,实例引用等要进行检验,当执行到Web的 实例化语句时,DataBase又去调用Web层,也就是这样,形成了一个死循环.导致栈溢出.
所以在此说明,n层架构的设计中,先要从下之下分出父子关系,避免逻辑混乱!