`
october731
  • 浏览: 86709 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

分层结构的方法的参数的传递

阅读更多
公司的项目分层,是公司自己搭建的框架,分为form层、web service层、biz层,其中biz层负责访问数据库,web service负责调用biz层,而form层则不和biz直接打交道,而调用的是ws层。在这当中,经常会用到这种情况。其实form层需要调用的方法,其实在ws和biz层使用的都是同名的方法,这样也方便调用。本来这样也无可厚非,而且还更不容易出错。但是这样,业务模块多了之后也发现另外一个问题。因为各层的方法名以及方法参数几乎一摸一样,在开发的时候,写每层的方法还可以直接copy和paste,但是一旦修改起来,这可就麻烦大了。重复工作量大。而且最要命的是方法不修改,但是修改参数个数或者参数类型,结果稍不留意就会把类型搞错或者参数不对应。后来有一想法,但是始终没有最后这样实施,但是个人觉得,这样还是很有好处,可能上层决策层不这么认为吧。
比如一个方法GetAllEmp(string name,bool sex, string address, int age),这里有四个参数,这样每一层都会有一个GetAllEmp(string name,bool sex, string address, int age)方法,但是我的想法不是每一层都去写一个参数,而是把参数封装起来,封装成一个对象一个ArrayList对象或者是一个object对象,这样在层与层之间方法的参数的传递的时候,就不会去在意这些参数的类型与个数的问题。当这个单个的对象传递到具体的层的时候,在对这个对象进行类型转换。只要在当初封装的时候没有问题,这个对象的封装与解封装是应该不会出问题的。这种方法,至少到目前为止,可能是因为我的目光以及水平问题,还只看到了他的有点,他有什么缺陷还真没有意识到。
抛砖引玉。
分享到:
评论
22 楼 logicgate 2009-05-04  
赞成异常的说法。Martin Fowler的重构一书里面也提到,"Long parameter list"是一种不好的方法。

一般上对于业务性不是很强,参数数目可能变动的方法,我倾向于使用DTO或者Map。反之则使用直传。
21 楼 holan 2009-05-04  
抛出异常的爱 写道
downpour 写道
抛出异常的爱 写道

理解一下业务....看看参数是否是一个 bean的片段....如果是的话...{
    用这个bean.

}如果不是,看这个参数数量是否大于3.{
    不大于3可直串.
}如果参数大于3{
    用map传.
}其它{
    新建一个传参bean
}


完全扯淡,不懂不要随便误导别人。

使用DTO或者Map作为参数传递都是典型的错误做法。除了工具方法,与业务逻辑相关的接口,都不应该使用DTO或者Map作为参数。



错误的标准在哪里能下载到?
跪球 : 传送门.

PS:如果没有网络版给,讲一下大体上的方式可以么

PS2:
如果不用map 是怎么防止类暴炸的?
我可以作到参数套参数...
把类与参数 数量减少到一定的数量
但项目组里大多数人
不会喜欢作这么图劳无功的事
所以推行起来可能会有很大障碍.

我觉得还是不用map的好,用map传,不如做一个内部类来传参数。
map让我有重回php的感觉
20 楼 抛出异常的爱 2009-05-04  
downpour 写道
抛出异常的爱 写道

理解一下业务....看看参数是否是一个 bean的片段....如果是的话...{
    用这个bean.

}如果不是,看这个参数数量是否大于3.{
    不大于3可直串.
}如果参数大于3{
    用map传.
}其它{
    新建一个传参bean
}


完全扯淡,不懂不要随便误导别人。

使用DTO或者Map作为参数传递都是典型的错误做法。除了工具方法,与业务逻辑相关的接口,都不应该使用DTO或者Map作为参数。



错误的标准在哪里能下载到?
跪球 : 传送门.

PS:如果没有网络版给,讲一下大体上的方式可以么

PS2:
如果不用map 是怎么防止类暴炸的?
我可以作到参数套参数...
把类与参数 数量减少到一定的数量
但项目组里大多数人
不会喜欢作这么图劳无功的事
所以推行起来可能会有很大障碍.
19 楼 VonNeumann 2009-05-04  
october731 写道
公司的项目分层,是公司自己搭建的框架,分为form层、web service层、biz层,其中biz层负责访问数据库,web service负责调用biz层,而form层则不和biz直接打交道,而调用的是ws层。在这当中,经常会用到这种情况。其实form层需要调用的方法,其实在ws和biz层使用的都是同名的方法,这样也方便调用。本来这样也无可厚非,而且还更不容易出错。但是这样,业务模块多了之后也发现另外一个问题。因为各层的方法名以及方法参数几乎一摸一样,在开发的时候,写每层的方法还可以直接copy和paste,但是一旦修改起来,这可就麻烦大了。重复工作量大。而且最要命的是方法不修改,但是修改参数个数或者参数类型,结果稍不留意就会把类型搞错或者参数不对应。后来有一想法,但是始终没有最后这样实施,但是个人觉得,这样还是很有好处,可能上层决策层不这么认为吧。
比如一个方法GetAllEmp(string name,bool sex, string address, int age),这里有四个参数,这样每一层都会有一个GetAllEmp(string name,bool sex, string address, int age)方法,但是我的想法不是每一层都去写一个参数,而是把参数封装起来,封装成一个对象一个ArrayList对象或者是一个object对象,这样在层与层之间方法的参数的传递的时候,就不会去在意这些参数的类型与个数的问题。当这个单个的对象传递到具体的层的时候,在对这个对象进行类型转换。只要在当初封装的时候没有问题,这个对象的封装与解封装是应该不会出问题的。这种方法,至少到目前为止,可能是因为我的目光以及水平问题,还只看到了他的有点,他有什么缺陷还真没有意识到。
抛砖引玉。

你的方法发挥到极致就是Hibernate的criteria了吧
这样做挺好 用method chain 还能有默认参数的效果
18 楼 downpour 2009-05-04  
jonson 写道
凤舞凰扬 写道
   楼主列的问题是大多数系统存在的问题,也就是常见的杠铃型,两头大中间小(业务层与表现层之间的接口层,比如Action类,比较复杂;数据库访问层DAO,ORM处理比较复杂;而业务层非常简单,就变成了转发。),至于问题的原因,呵呵,就是你们系统的所谓架构师只有两三把斧头的原因,只会照抄和模仿,知其表而不知其意。
   楼主所在项目的问题就出现在了业务层。楼主项目的做法肯定是表现层需要什么,就设计web service,然后在变成业务层。这样的话,这样一个所谓的业务层其实是没有任何意义的。
   真正的做法应该是:系统在进行分析设计的时候,明确系统所提供的功能与服务(而不是给UI的API),这种功能与服务是组件复用的最大基础(而这也是基于SOA架构的一个最为核心的思想,并不是有了WebService就是SOA)。在业务层,每个方法应该就是一个用例的具体实现(或者使用Facade模式,包括或使用其他方法,就如同用例之间的use/include),应该是事务控制的核心,更加应该是系统服务实现底层的封装,包括系统缓存、中间件服务(消息处理),事件处理等等。
   而WEb Service成一个关键因素,是基于契约(如果对外就应该是基于WSDL,如果对内-UI表现层,就应该是基于DTO的服务封装,类似于JEE核心模式中的Delegate)来定义的。它的主要职责是负责将客户端(外部调用或者DTO)转换成系统的业务可识别领域,并处理一些非业务的系统功能,比如授权与认证等。它可以做成适配器、桥也好,它的核心是委托。
    (太晚了,有些困了。眼睛都花花的,不晓得是否说清楚了,改天再上来看看)


凤舞凰扬,你的想法我觉得很有道理,但这这里其实存在一个问题的。 你说的 “明确系统所提供的功能与服务”最后还不是体现在UI上吗?所以如果说有人“表现层需要什么,就设计web service,然后在变成业务层。”也无可厚非吧。关键是做的时候是否进行功能点归并等的工作吧。


你错了,并不是所有的功能与服务都体现在UI上的。设计系统是一个复杂的过程,可以采用很多种方式。现在的很多情况下,UI驱动设计成为了很重要的一种工作方法。不过真正的Web Service,可能要涉及到系统间接口,针对UI的接口等各种各样的考虑。
17 楼 jonson 2009-05-03  
凤舞凰扬 写道
   楼主列的问题是大多数系统存在的问题,也就是常见的杠铃型,两头大中间小(业务层与表现层之间的接口层,比如Action类,比较复杂;数据库访问层DAO,ORM处理比较复杂;而业务层非常简单,就变成了转发。),至于问题的原因,呵呵,就是你们系统的所谓架构师只有两三把斧头的原因,只会照抄和模仿,知其表而不知其意。
   楼主所在项目的问题就出现在了业务层。楼主项目的做法肯定是表现层需要什么,就设计web service,然后在变成业务层。这样的话,这样一个所谓的业务层其实是没有任何意义的。
   真正的做法应该是:系统在进行分析设计的时候,明确系统所提供的功能与服务(而不是给UI的API),这种功能与服务是组件复用的最大基础(而这也是基于SOA架构的一个最为核心的思想,并不是有了WebService就是SOA)。在业务层,每个方法应该就是一个用例的具体实现(或者使用Facade模式,包括或使用其他方法,就如同用例之间的use/include),应该是事务控制的核心,更加应该是系统服务实现底层的封装,包括系统缓存、中间件服务(消息处理),事件处理等等。
   而WEb Service成一个关键因素,是基于契约(如果对外就应该是基于WSDL,如果对内-UI表现层,就应该是基于DTO的服务封装,类似于JEE核心模式中的Delegate)来定义的。它的主要职责是负责将客户端(外部调用或者DTO)转换成系统的业务可识别领域,并处理一些非业务的系统功能,比如授权与认证等。它可以做成适配器、桥也好,它的核心是委托。
    (太晚了,有些困了。眼睛都花花的,不晓得是否说清楚了,改天再上来看看)


凤舞凰扬,你的想法我觉得很有道理,但这这里其实存在一个问题的。 你说的 “明确系统所提供的功能与服务”最后还不是体现在UI上吗?所以如果说有人“表现层需要什么,就设计web service,然后在变成业务层。”也无可厚非吧。关键是做的时候是否进行功能点归并等的工作吧。
16 楼 hatedance 2009-05-03  
1 层间同名函数,我觉得可以做一个基于反射的通用的函数。比如:
  object invoke(String methodName,object[] params);

2 有些crud的函数的确是无法避免在dao层就实现了的。但是尽量如果你采用ddd,很多逻辑都实现在domain层了,ws层的确只是转发而已,和buiness层采用同一个接口,以确保同步。
15 楼 williamou 2009-05-03  
我的理解:
form层:表现层,负责用户交互逻辑,调用逻辑层接口执行业务操作。
biz层:逻辑层,系统对外提供的业务操作接口都在上面。
ws层:只不过biz层的一个扩展,提供远程调用。应该与biz层一致,至少是对得上的。

由于biz层和ws层其实都是提供同一套业务接口,"同名的方法"就是很正常的事。

参数的问题好像又是另一个问题了
"GetAllEmp(string name,bool sex, string address, int age)"应该是逻辑层上一个查询接口吧。除了是实在业务上有需要,如提供一个 get A by B's ID这样一个方法,才会可能有 getAByB(String BID)这样的接口,不然一般可以考虑做成一个接受通用的查询条件的查询方法,如search(SearchCondition[] conditions)。 逻辑层上提供这样的接口仿佛更适合。
14 楼 steeven 2009-05-02  
这个问题很有意思, 记得java上前几年在讨论要不要把entity往前传. 现在似乎不用讨论了.

EJB3.1的一个想法就是把EJB/Web打包成一个war, 而ejb3.0的想法是pojo, 用annotation去简化. 其中一个bean上可以同时加上@Stateless, @Webservice, 就是说没有必要再去人为加个ws层, 这些工作让框架去搞定.

用netbeans的向导生成一个ejb应用看看就知道了, 简单快速. JAVA框架正在回归原始.
JSR295/303 will change our life


java行业里面形而上学的无聊结构太多了, 看看domino和sap, 简单实用.
13 楼 hankesi2000 2009-05-02  
我认为目前很多项目中都存在这样的一个情况:使用一个通用的模板,模板告诉你这块需要写什么,那就写什么;然后由于各种情况的出现,如项目开发时间、技术能力等,导致项目没有根据需要发挥出模板的功能;接着项目做大了,更改难度大了,就这样一直开发下去了。。。
楼主的项目我认为就是这样的一个例子。就问题而言,怎么解决,还需要根据业务而定
12 楼 yimlin 2009-05-02  
楼主的问题在于ws层其实没有特别意义,仅仅起到了调用转发。
所以还是要回到最初的问题:设立三层的目的何在?是为了分层而分层还是有额外目的?若有额外之目的,则实践中为何为出现变形?是否架构最初试图解决的问题而实际并不存在?
明白这些问题就可以做相应调整。
比如:
A.ws层和biz层物理上合并;form层直接访问biz层;
B.WS层和BIZ层逻辑上合并,ws层提供接口,biz层以空接口继承ws层,变成两个接口一个实现;运行期,ws层提供自动代理,将调用转发到biz层的实现上;并以此为原则,非此为例外。
11 楼 whaosoft 2009-05-01  
这不好说 其实哪个框架都有好有坏的
还有如果你不是设计人员 你就要服从那个框架要不没法干活了 是吧
10 楼 魔力猫咪 2009-05-01  
看看《领域驱动设计》吧。理论上所有的业务都应该存放到领域对象和服务中。所谓的业务层只是对业务流程进行组合。
9 楼 guoery 2009-05-01  
7楼说的很好,是否意味着目前我们的设计水平太低了呢,经常业务层好像没有做什么事情一样
8 楼 downpour 2009-05-01  
抛出异常的爱 写道

理解一下业务....看看参数是否是一个 bean的片段....如果是的话...{
    用这个bean.

}如果不是,看这个参数数量是否大于3.{
    不大于3可直串.
}如果参数大于3{
    用map传.
}其它{
    新建一个传参bean
}


完全扯淡,不懂不要随便误导别人。

使用DTO或者Map作为参数传递都是典型的错误做法。除了工具方法,与业务逻辑相关的接口,都不应该使用DTO或者Map作为参数。
7 楼 魔力猫咪 2009-05-01  
凤舞凰扬 写道
   楼主列的问题是大多数系统存在的问题,也就是常见的杠铃型,两头大中间小(业务层与表现层之间的接口层,比如Action类,比较复杂;数据库访问层DAO,ORM处理比较复杂;而业务层非常简单,就变成了转发。),至于问题的原因,呵呵,就是你们系统的所谓架构师只有两三把斧头的原因,只会照抄和模仿,知其表而不知其意。
   楼主所在项目的问题就出现在了业务层。楼主项目的做法肯定是表现层需要什么,就设计web service,然后在变成业务层。这样的话,这样一个所谓的业务层其实是没有任何意义的。
   真正的做法应该是:系统在进行分析设计的时候,明确系统所提供的功能与服务(而不是给UI的API),这种功能与服务是组件复用的最大基础(而这也是基于SOA架构的一个最为核心的思想,并不是有了WebService就是SOA)。在业务层,每个方法应该就是一个用例的具体实现(或者使用Facade模式,包括或使用其他方法,就如同用例之间的use/include),应该是事务控制的核心,更加应该是系统服务实现底层的封装,包括系统缓存、中间件服务(消息处理),事件处理等等。
   而WEb Service成一个关键因素,是基于契约(如果对外就应该是基于WSDL,如果对内-UI表现层,就应该是基于DTO的服务封装,类似于JEE核心模式中的Delegate)来定义的。它的主要职责是负责将客户端(外部调用或者DTO)转换成系统的业务可识别领域,并处理一些非业务的系统功能,比如授权与认证等。它可以做成适配器、桥也好,它的核心是委托。
    (太晚了,有些困了。眼睛都花花的,不晓得是否说清楚了,改天再上来看看)

没错。就是把业务放到Action或Dao中了。我觉得把Dao作为一个组件看待的话,完全可以直接调用,不用非得傻傻的写个转发的空方法。当然,这个前提是业务只是最简单的CRUD,没有一点其他业务在里面。
6 楼 凤舞凰扬 2009-05-01  
   楼主列的问题是大多数系统存在的问题,也就是常见的杠铃型,两头大中间小(业务层与表现层之间的接口层,比如Action类,比较复杂;数据库访问层DAO,ORM处理比较复杂;而业务层非常简单,就变成了转发。),至于问题的原因,呵呵,就是你们系统的所谓架构师只有两三把斧头的原因,只会照抄和模仿,知其表而不知其意。
   楼主所在项目的问题就出现在了业务层。楼主项目的做法肯定是表现层需要什么,就设计web service,然后在变成业务层。这样的话,这样一个所谓的业务层其实是没有任何意义的。
   真正的做法应该是:系统在进行分析设计的时候,明确系统所提供的功能与服务(而不是给UI的API),这种功能与服务是组件复用的最大基础(而这也是基于SOA架构的一个最为核心的思想,并不是有了WebService就是SOA)。在业务层,每个方法应该就是一个用例的具体实现(或者使用Facade模式,包括或使用其他方法,就如同用例之间的use/include),应该是事务控制的核心,更加应该是系统服务实现底层的封装,包括系统缓存、中间件服务(消息处理),事件处理等等。
   而WEb Service成一个关键因素,是基于契约(如果对外就应该是基于WSDL,如果对内-UI表现层,就应该是基于DTO的服务封装,类似于JEE核心模式中的Delegate)来定义的。它的主要职责是负责将客户端(外部调用或者DTO)转换成系统的业务可识别领域,并处理一些非业务的系统功能,比如授权与认证等。它可以做成适配器、桥也好,它的核心是委托。
    (太晚了,有些困了。眼睛都花花的,不晓得是否说清楚了,改天再上来看看)
5 楼 wl95421 2009-04-28  
参数接口+Adapter模式
4 楼 sslaowan 2009-04-28  
抛出异常的爱 写道
october731 写道
公司的项目分层,是公司自己搭建的框架,分为form层、web service层、biz层,其中biz层负责访问数据库,web service负责调用biz层,而form层则不和biz直接打交道,而调用的是ws层。在这当中,经常会用到这种情况。其实form层需要调用的方法,其实在ws和biz层使用的都是同名的方法,这样也方便调用。本来这样也无可厚非,而且还更不容易出错。但是这样,业务模块多了之后也发现另外一个问题。因为各层的方法名以及方法参数几乎一摸一样,在开发的时候,写每层的方法还可以直接copy和paste,但是一旦修改起来,这可就麻烦大了。重复工作量大。而且最要命的是方法不修改,但是修改参数个数或者参数类型,结果稍不留意就会把类型搞错或者参数不对应。后来有一想法,但是始终没有最后这样实施,但是个人觉得,这样还是很有好处,可能上层决策层不这么认为吧。
比如一个方法GetAllEmp(string name,bool sex, string address, int age),这里有四个参数,这样每一层都会有一个GetAllEmp(string name,bool sex, string address, int age)方法,但是我的想法不是每一层都去写一个参数,而是把参数封装起来,封装成一个对象一个ArrayList对象或者是一个object对象,这样在层与层之间方法的参数的传递的时候,就不会去在意这些参数的类型与个数的问题。当这个单个的对象传递到具体的层的时候,在对这个对象进行类型转换。只要在当初封装的时候没有问题,这个对象的封装与解封装是应该不会出问题的。这种方法,至少到目前为止,可能是因为我的目光以及水平问题,还只看到了他的有点,他有什么缺陷还真没有意识到。
抛砖引玉。


理解一下业务....看看参数是否是一个 bean的片段....如果是的话...{
    用这个bean.

}如果不是,看这个参数数量是否大于3.{
    不大于3可直串.
}如果参数大于3{
    用map传.
}其它{
    新建一个传参bean
}

概括的忒经典了。
在Map和DTO中,你可以做以下权衡:
如果为了减少DTO的数量,那就用Map,但是你没法在编译期检查变量名之类的错误。
如果为了显式的语义和在编译期查错,那就用DTO
用Map的方式你也可以封装一下,但是基本的意思是差不多,封装的理论知识可以参考SDO规范。
3 楼 snipercc 2009-04-28  
GetAllEmp(string name,bool sex, string address, int age)
这个方面当中的参数应该是一个Entity的一部分吧,可以直接传这个Entity的对象啊。
如果按楼主说的将参数都放入到ArrayList里面,那么代码的可读性是不是就被降低了么?还有就是出错的概率也增加了

相关推荐

    应用分层及规约

    分层规约还特别指出,当查询对象包含超过两个参数时,禁止使用类来传输,而推荐使用Map等键值对数据结构。 通过上述知识点,可以看出应用分层及规约在软件架构设计中的重要性,它不仅指导开发人员如何组织代码,还...

    行业资料-电子功用-分层式隔离散热结构预装式变电站的介绍分析.rar

    分层式设计通过将发热部件与非发热部件分隔开来,减少热能传递,降低了内部温升,确保了设备的稳定运行。 其次,这种结构采用了高效的散热材料和设计,如铝制散热片、热管、风扇等,以增强散热效果。通过合理布局,...

    springboot+mybatis 分层设计

    4. **模型层(Model层)**:这一层包含了业务对象,通常是Java的实体类,它们代表了数据库中的表结构,用于在Service层和DAO层之间传递数据。 在实际开发中,我们还需要考虑其他的设计元素,例如: - **异常处理**...

    delphi 三层中传递自定义Record的例子

    这种分层结构有助于提高代码的可维护性、可扩展性和复用性。本文将详细讨论如何在Delphi的三层架构中传递自定义Record类型的数据。 首先,我们需要理解Record在Delphi中的概念。Record是一种复合数据类型,它可以...

    电子功用-大电网“集中协调、分层控制”的闭环自适应紧急控制方法

    这种分层结构能够提高控制的针对性和效率,同时减少上层决策对下层运行的干扰,使系统更具鲁棒性。 闭环自适应紧急控制方法强调的是控制系统的动态响应和自我调整能力。在实际运行中,电力系统状态不断变化,因此...

    基于分层分布式智能传感器网络的水电站结构监测系统.pdf

    《基于分层分布式智能传感器网络的水电站结构监测系统》一文,为我们展示了这样一种创新的技术方案。 分层分布式智能传感器网络技术作为该监测系统的核心,它采用了分层的网络架构设计,使得整个系统具有更高的灵活...

    struts 体系结构

    ActionServlet负责接收HTTP请求,解析请求参数,调用相应的Action,并将处理结果传递给JSP页面显示。 2. **ActionForm**:ActionForm对象用于封装用户的输入数据,它与HTML表单元素相对应,将请求参数转化为Java...

    考虑结构刚度不同形成模式下不均匀沉降对上部结构的影响

    关键词不均匀沉降、分层组刚、上部结构表明文章聚焦于研究由多种因素造成的地基不均,以及如何影响上部结构的稳定性和安全性。由于地基的不均匀性、上部荷载的不同分布等因素,地基会出现不均匀沉降现象,这会使得...

    无线网络分层QoS垂直映射模型及跨层优化方法.pdf

    因此,提出了一种分层QoS垂直映射模型,旨在通过不同网络协议层之间有效的信息流通和策略协调,将高层应用的服务质量要求转化为低层网络参数的可操作指令,从而实现QoS的有效传递和执行。 模型的建立依托于无线网络...

    框架结构近似计算方法PPT学习教案.pptx

    - 可以使用力法、位移法等结构力学方法,手算常采用迭代法、分层法、弯矩二次分配法和系数法。 - 分层法中,假定不考虑侧移影响,每层荷载只影响本层及相邻柱的内力,但不忽视柱轴力的影响。 7. **现浇楼板对梁...

    遗传算法分层遗传算法.rar_GA_算法 C#_遗传算法 _遗传算法 分层_遗传算法’

    分层遗传算法是一种对遗传算法进行结构化和层次化的优化方法。在这种算法中,种群被分为多个层次,每个层次代表问题的一个特定部分或复杂性级别。低层次通常包含更简单的个体,高层次则包含更复杂的个体。这种分层...

    行业资料-交通装置-一种浆车用分层棒.zip

    5. **性能测试与评估**:可能涉及对分层棒性能的测试方法和标准,以及测试结果的解读。 6. **维护与保养**:提供分层棒的日常维护和可能出现的问题解决方案,以确保其长期有效运行。 7. **技术发展趋势**:探讨未来...

    水库水温分布结构识别的高斯过程机器学习方法.pdf

    水温分布结构的不同类型,如分层型、混合型和过渡型,会极大地影响水库的水温传递、物质交换以及生物活动等方面。这些因素的综合效应,进一步影响到水库的农业生产、渔业发展以及供水安全。 传统的水库水温分布结构...

    confugue:Python的分层配置框架

    取而代之的是,Confugue允许自动从YAML配置文件为深度学习模型的每个部分提供超参数,而无需传递它们。 配置文件的嵌套结构遵循模型体系结构的层次结构,模型的每个部分都可以访问文件的相应部分。 例如,这是使用...

    复合多层结构的隔声研究

    通过求解每层的传递函数,可以得到整个多层结构的总传递矩阵,进而分析多层板的隔声性能。 2. 平面声波垂直入射条件 平面声波垂直入射指的是声波以垂直于多层板表面的角度进入材料。在垂直入射的情况下,声波的传播...

    WinForm数据传递

    委托在C#中扮演着事件处理程序的角色,它可以视为指向方法的引用,允许我们传递方法作为参数或者在不直接调用的情况下执行方法。在WinForm应用中,委托是数据传递的一种高效且灵活的方式,尤其是当需要在不同控件或...

    毕业设计指导书(框架结构设计)-内力计算及组合.doc

    框架结构设计计算方法 本文主要介绍框架结构设计中的力计算方法,包括竖向荷载作用下的弯矩分配法和水平荷载作用下的D值法。...同时,需要根据实际情况选择合适的计算方法和参数,确保框架结构的安全和可靠性。

    java-DAO分层解析.pdf

    1. **分层结构**: - **表现层(Presentation Layer)**:负责与用户交互,通常包括Web页面或GUI应用程序。 - **控制层(Controller Layer)**:处理用户请求,协调其他层之间的交互,例如Spring MVC中的...

Global site tag (gtag.js) - Google Analytics