数据层:提供给业务层的虚数据.
表示层:把用户的需求展示出来.
最早的程序是不分层的,比如早期的批处理系统,只要编写 *** 作某些文件格式的程序.
后来,随着客户机/服务器系统的出现,分层的概念就明显了,这样的系统是两层结构,客户端包含界面也包含应用代码.服务器端是数据库.但领域逻辑复杂并且易变时,这样做会有很多缺点,冗余代码,不利于重用,不利于分工等等.
再后来,面向对象的编程序的思想普及了,面向对象为领域逻辑问题找到了答案,转到三层架构的系统,在这中种方式下,表现层实现用户界面,中间层实现业务逻辑,在数据源层存取数据,这种方式可以将复杂的领域逻辑从界面中抽离出来,用对象加以建模和组织。
注意:三层结构不是物理的分层,客户机/服务器是两层的结构,它是物理的分层,客户机在一台台式机器上,服务器端是一台服务器,而三层机构无需把不同层次放到不同的计算机上运行,独立出来的领域逻辑层无需放到独立的计算机上,如果数据库在本地,也可以在一台机器上运行三层系统。
具体如何分离取决于系统的复杂度,从数据库中读取数据并将其在界面上显示,可能在一个过程中完成,但仍然存在三个层次,可能在这里只是把三个层的行为放到三个子程序中。如果系统稍微复杂一些,就可以把三层做成三个类,依此类推。但至少切记一定要进行某种形式的分离,至少在致程序级。
领域逻辑可以进一步分层,形成多层结构。
我算是糊涂了
没有任何概念比计算机中的概念要模糊了
有时候,英文是一个意思,被人翻译后又是一个意思
比如我们常说的三层定义
第一种通俗的理解是
表示层就是像WINFORM或WEBFORM等
业务逻辑层:这个东东是什么呢,做什么用呢?我开始的理解是那些DLL
数据存取层:就是数据库部分了.
但是第一种理解对于我来说,我觉得不太妥,具体有什么不太妥,也不知道.
无知者无畏,反正我也没有科班或正式的去学过三层体系,所以,不怕大家笑话,我就胡说八道几句吧
第二种理解是我最近想的
表示层是指界面部分,例如WINFORM,例如WEBFORM,或者其他一切用于呈现数据外观的东东
业务逻辑层:这一部分是我以前最糊涂的了,不过,最近接触了一点ORM的概念受了点启发,有了一点点理解
我们可不可以这样想,三层体系就是把数据的存储,数据的表示和数据的规则分离,这样一看,所谓业务逻辑(这个字暴生辟呀),就是指数据的规则,也就是说,数据的有效性等等.
至于数据存取层,这一部分,容易理解的多了,就是指用于直接读取,存储数据的部分.
我想,这样说,太生硬,摸不着看不见,但是下面的例子是做过ASP.NET的都遇到过的吧.
举个例子来说.
有一个表CUSTOMER,你要负责将此表内容呈见给浏览者.同时,提供另一个界面给数据管理者管理数据.
呈现给浏览者的数据是一个WEBFORM形式,呈现给数据管理者的是一个WINFORM形式.
不管怎么说,在表示层部分,这个数据使用了截然不同的两种表现形式.
但是数据来自何方呢?直接从数据库提取然后就显示吗?可能不行,对于WEBFORM的界面来说,你可能需要对数据进行一些加工.比如,把数据中的客户的LASTNAME和FIRSTNAME合并等.更有可能,对于管理数据的人来说,你需要处理一下录入的数据,验证一下这些数据是否合乎一些规则,比如,性别必需为男/女,比如,年龄不能大于20,有了这种需要,就意思着你不是需要从数据介质中提取的原始数据,或者你不是直接把录入的原始数据存入到数据介质中.你需要一个对数据进行验证,加工,变形的过程.所以,我想,业务逻辑层处理的就是这部分?
而数据存取层呢,一提到他我们就以为是关系数据库.其实不然,数据存取层是存取数据库/XML数据/其他任何可访问数据的代码.说到这些,微软的DAAB简化的就是数据存取层了.
以前我们要做一个数据存取层,就要建连接,建COMMAND,建一堆东东,然后还得记着统统关掉,及时释放.现在,DAAB简化了这部分的工作,使数据库的连接,查询,关闭自动化.
但DAAB取代不了数据存取层,因为它是抽像的,对应于每一个具体的实用(例如一个表),你必须去写一个具体的数据存取层.
另外,看了ORM外,我还有一个感想,以前,我做的东东里,都是先建好数据库,然后再去写代码.写得很乏味,后来,用起CODESMITH来自动生成.CODESMITH用起来很好.可是,看了ORM,大家都认为数据库是ORM的附加产物.也就是说不是由D到O,而该由O到D.这与我之前的过程恰恰相反.但仔细想想,确实该由O到D.
为什么呢?做过由数据库生成数据访问层的人都会有一个问题,就是,如果以后需要改动数据库中的一个字段,比如加入一个字段,删除一个字段,将会引发一连串的改动,包括会改动到涉及此字段的数据存储类以及业务逻辑类,改起来,很容易遗漏.
假如按上面的三层理解法,我们可以认为数据对象是中心.业务逻辑对其进行修饰及验证,一方面它又被呈现,一方面它又被持久化.因此,我们可以先去设计业务逻辑层(就是表示对象的了),例如上面的例子:
我们先建立名为CUSTOMER的对象.为其定义若干个属性,每一个属性表示CUSTOMER的一个字段.然后再为此CUSTOMER建立数据存取层.至于数据库,我想,有没有可能直接由CUSTOMER类的定义生成呢?
如果这样,似乎更符合自然规律,想想,我们建立CUSTOMER对象,先用类表示出此对象.为其添加属性,为其添加行为,然后,再生成此对象的持久形式.是不是很理想呢?
当然,以上是我的理解.我至今仍不清楚真正的三层究竟该如何定义.
我也不清楚ORM跟我第二种理解究竟有多大偏差.
更为重要的是,我迫切的想知道,有没有一种从O(对象)到D(数据)的开发方法.因为,业务对象和数据库联系实在太紧了
不管是由D到O还是由O到D,总要解决一个问题,那就是,当业务对象发生变化时,该如何去保持其数据存储的同步表现呢,怎样才让两者更离散一些,以解决后续维护带来的问题呢?
希望高手指点
利用PKPM进行多层框架结构设计的主要步骤一、执行PMCAD主菜单1,输入结构的整体模型
(一)根据建筑平、立、剖面图输入轴线
1、结构标准层“轴线输入”
1)结构图中尺寸是指中心线尺寸,而非建筑平面图中的外轮廓尺寸
2)根据上一层建筑平面的布置,在本层结构平面图中适当增设次梁
3)只有楼层板、梁、柱等构件布置完全一样(位置、截面、材料),并且层高相同时,才能归并为一个结构标准层
2、“网格生成”——轴线命名
(二)估算(主、次)梁、板、柱等构件截面尺寸,并进行“构件定义”
1、梁
1)抗震规范第6.3.6条规定:b≥200
2)主梁:h = (1/8~1/12) l ,b=(1/3~1/2)h
3)次梁:h = (1/12~1/16) l ,b=(1/3~1/2)h
2、框架柱:
1)抗震规范第6.3.1条规定:矩形柱bc、hc≥300,圆形柱d≥350
2)控制柱的轴压比
——柱的轴压比限值,抗震等级为一到四级时,分别为0.7~1.0
——柱轴力放大系数,考虑柱受弯曲影响,=1.2~1.4
——楼面竖向荷载单位面积的折算值,=13~15kN/m2
——柱计算截面以上的楼层数
——柱的负荷面积
3、板
楼板厚:h = l /40 ~ l /45 (单向板) 且h≥60mm
h = l /50 ~ l /45 (双向板) 且h≥80mm
(三)选择各标准层进行梁、柱构件布置,“楼层定义”
1、 构件布置,柱只能布置在节点上,主梁只能布置在轴线上。
2、 偏心,主要考虑外轮廓平齐。
3、 本层修改,删除不需要的梁、柱等。
4、 本层信息,给出本标准层板厚、材料等级、层高。
5、 截面显示,查看本标准层梁、柱构件的布置及截面尺寸、偏心是否正确。
6、 换标准层,进行下一标准层的构件布置,尽量用复制网格,以保证上下层节点对齐。
(四)定义各层楼、屋面恒、活荷载,“荷载定义”
1、 荷载标准层,是指上下相邻且荷载布置完全相同的层。
2、 此处定义的荷载是指楼、屋面统一的恒、活荷载,个别房间荷载不同的留在PM主菜单3局部修改
(五)根据建筑方案,将各结构标准层和荷载标准层进行组装,形成结构整体模型,“楼层组装”
1、 楼层的组装就遵循自下而上的原则。
2、 楼层组装完成后整个结构的层数必然等于几何层数。
3、 确定“设计参数”,总信息、地震信息、风荷载信息等。
二、执行PMCAD主菜单2,布置次梁楼板
1、 此处次梁是指未在主菜单1布置过的次梁,对于已将其当作主梁在主菜单1布置过的梁,不得重复布置。
2、 对楼梯间进行全房间开洞,“楼板开洞”
3、 对个别房间板厚发生变化的,按照设计实际作局部修改,“修改板厚”
4、 对有悬挑板的梁上布置悬挑板,“设悬挑板”
5、 第1层布置好后,下一层的布置尽量利用“拷贝前层”避免重复工作,拷贝前层时可根据实际情况需要,决定是否拷贝前层的楼板开洞、修改板厚、设悬挑板、次梁布置等信息。
三、执行PMCAD主菜单3,输入荷载信息
1、“楼面荷载”对个别房间进行楼面荷载修改,如:板厚有变化的房间的楼面恒载、厕所的楼面恒载及门厅、走道、楼梯间的楼面活荷载等。
2、“梁间荷载”对梁承受的非板传来的荷载(如填充墙等)进行输入,注意,对梁承受填充墙荷载的需考虑窗洞、楼梯间全房间开洞的须根据实际情况计算梯段传至楼层梯梁的均布恒(活)载、梯段及休息平台经平台梯梁(、梯柱)传至下层框架梁的集中恒(活)载
3、“节点荷载” 梯段及休息平台经平台梯梁(、梯柱)传至框架柱的集中恒(活)载
4、 程序能对梁的自重、板的导荷进行自动计算,这些荷载都不能在此处重复计算,荷载的输入是指程序不能计算和导算的外加荷载,一定要根据实际情况进行计算输入,不得多输,更不能漏掉荷载。切记,楼梯间的荷载往往容易漏掉!
5、 第1层布置好后,下一层的布置尽量利用“层间拷贝”避免重复工作,可根据实际情况选择前面已经布置好的任意一层作荷载拷贝,还可根据实际情况选择是否拷贝楼面荷载、梁间荷载、节点荷载等信息。
四、执行PMCAD主菜单C ,平面荷载显示校核
1、 显示各层输入的楼面荷载、梁间荷载、节点荷载,以供校核
2、 如要保留各荷载文件,必须为每个文件另取文件名,“指定图名”
3、 荷载文件格式为*.T,可用主菜单9“图形编辑、打印及转换”打开文件,或转换为DWG文件用CAD打开。
五、执行TAT-8主菜单1,接PM生成TAT数据
1、 一般选择“生成荷载文件”,否则,没有TAT荷载;
2、 一般选择“考虑风荷载”,否则,荷载组合中没有风荷载;
3、一般选择“不保留”以前的TAT计算参数,特别是当在PMCAD中对结构模型作过改变时(如增删构件等),必须对TAT参数重新定义,以避免PM与TAT矛盾;
4、在执行本菜单以前,必须执行过PMCAD主菜单1、2、3,且在当前工作目录中存在PMCAD主菜单2生成的文件TATDA1.PM和LAYDATN.PM,以及PMCAD主菜单3生成的荷载文件DAT*.PM。
5、执行完本菜单后,将生成TAT计算格式的几何数据文件DATA.TAT和荷载数据文件LOAD.TAT。
六、执行TAT-8主菜单2,数据检查和图形检查
1、 执行“1.数据检查”检查几何文件DATA.TAT和荷载文件LOAD.TAT。如果有错误或警告信息,屏幕会有提示,此时应进入“9.文本文件查看”打开出错信息文件TAT-C.ERR查看产生错误的原因,并作出相应修改。然后依次执行PM主菜单1、2、3,并重新进行数据检查,直到没有错误提示为止。
2、 执行“3.参数修正”对TAT计算参数进行定义,除根据结构的实际情况选择外,几个重要参数按如下原则选取:
1) 总信息:
结构类型,按实际选取;
结构材料及特征,按实际选取;
地震力计算信息,一般选“计算水平地震”;
竖向力计算信息,一般选“模拟施工加载1”;
砼柱长度系数,一般多层房屋梁柱为刚接的框架结构,选择“不打勾”,即按第7.3.11-2条规定,底层柱取1.0,上层柱取1.25;
是否考虑P-Δ效应,一般多层房屋可选不考虑;
是否考虑梁柱重叠的影响,一般可选不考虑;
2) 地震信息:
是否考虑扭转耦连,一般需要考虑,对称的结构,可以选择不考虑;
计算振型个数,当地震力计算采用算法1(侧刚计算法),不考虑耦连的振型数不大于结构的层数,考虑耦连的振型数不大于3倍的层数;当地震力计算采用算法2(总刚计算法),振型数一般大于12;
周期折减系数,视填充墙的多少取0.7~1.0,填充墙越多,取值越小;
结构的阻尼比,仅对钢结构、混合结构需要相应地减小,钢结构取0.02,混合结构取0.03;
5%的偶然偏心,对高层应考虑由质量偶然偏心引起的可能的最不利的地震作用;
楼层最小地震剪力系数,选择“打勾”,程序取规范值为默认值;
3) 调整信息
0.2Q0,对高层框架剪力墙结构中框架部分地震剪力的调整;
梁刚度放大系数,考虑楼板对梁刚度的影响,中梁取1~2,连梁取1~1.5;
梁端负弯矩调幅系数,取0.7~1对主梁进行负弯矩折减,正弯矩相应增大,一般取0.85;
梁弯矩放大系数,考虑活荷载最不利布置时取1.0,不考虑活荷载最不利布置时常取1.2;
梁扭转折减系数,考虑楼板对梁的扭转效应的影响,当结构没有楼板或有弧梁时,应取1;
4) 材料信息
砼容重,考虑抹灰等影响,取26~28;
梁箍筋间距,应填入加密区的间距,并满足规范要求;
柱箍筋间距,应填入加密区的间距,并满足规范要求;
5) 设计信息
柱墙活荷载折减,一般选“按规范折减”;
梁、柱配筋保护层厚度,满足规范要求;
6) 风荷载信息
是否重算风荷载,如在TAT中定义了多塔、d性节点等,应选择“重新计算”。
其他参数按实际或取默认值。
3、 执行“6.检查和绘各层几何平面图FP*.T”,生成各层结构构件几何平面图。
4、 执行“9.文本文件查看”,数检报告TAT-C.OUT。
七、执行TAT-8主菜单3,结构内力和配筋计算
1、“质量、质心坐标和刚度计算”,一般选择“打勾”,生成计算书文件TAT-M.OUT。
2、“结构周期、地震力计算”,一般选择“打勾”,算法一般采用“侧刚”,但空旷结构由于没有楼板,不能采用刚性楼板定义,必须用“总刚”模型。总刚模型一定是耦连的,振型数大于等于6。
3、“结构位移计算和输出”,一般选择“打勾”,输出一般选择“简化”。
周期、位移计算完成后,生成楼层位移文件,TAT-4.OUT。
4、“梁活荷载不利布置计算”,一般选择“打勾”。
5、“基础上刚度计算”,在基础计算时是否考虑上、下部结构协同工作,只有在用JCCAD时,才可以实现。
6、“构件内力标准值计算”,一般选择“打勾”。
7、“配筋及验算”,一般选择“打勾”。
8、“12层以下框架薄弱层计算”,对7~9度纯框架结构,应该选择“打勾”,进行罕遇地震作用下薄弱层的抗震变形验算。
八、执行TAT-8主菜单5,分析结果图形和文本显示
1、执行“3 绘各层柱、梁、墙配筋验算图PJ*.T”,查看和输出结构各层柱、梁、墙的配筋简图,红字表示超筋。
2、进入“9 文本文件查看”打开“超配筋信息文件GCPJ.OUT”,查看是否有超限,及什么原因引起超限:
1)对钢筋砼柱,有以下3种超限提示:
**(NUc)N,Uc=N/Ac/fc,表示轴压比超限;
** Rs >Rsmax,表示柱配筋率超限;
**(NVx)Vx,Vx >Fvx=Ax*fc*B*H0,表示柱抗剪截面不够;
**(NVy)Vy,Vy >Fvy=Ay*fc*B*H0,表示柱抗剪截面不够;
2)对钢筋砼梁,有以下4种超限提示:
**(Ns)X >0.25H0,表示梁受压区高度超限;
**(Ns) Rs >Rsmax,表示梁主筋配筋率超限;
**(NTv)V,V >Fv=Av*fc*B*H0,表示梁抗剪截面不够;
**(NTv)V,T,V/(BH0)+T/Wt >0.25fc,表示梁剪扭截面不够;
3、 针对具体情况,返回PM主菜单1进行构件截面的修改,重复上面的步骤,直至不出现超限信息。
4、 执行“6 梁挠度、柱节点验算和墙边缘构件图PD*.T”,查看和输出梁的挠度图,红字表示超限。
5、 如要作基础设计,执行“7 汇底层柱墙最大组合内力图DCNL*.T”
6、 执行“9 文本文件查看” ,主要有:
1)TAT-M.OUT,结构控制参数、各层质量和质心坐标、各层风荷载输出文件
2)TAT-4.OUT,楼层位移文件
3)GCPJ.OUT,各层构件超配筋信息输出文件
九、执行TAT-8主菜单6,梁归并(全楼归并)
1、 输入归并层数。
2、 输入适当的归并系数,一般取0.2~0.3。
3、 生成各层梁归并图,LGB-*.T。
十、执行TAT-8主菜单A,梁平面图画法
1、输入需要画的层号。
2、选择“重新生成配筋”。
3、执行“修改参数”,选择合适的“施工图纸规格”,“是否根据允许裂缝宽度自动选筋”选择“打勾”。
4、 执行“继续”,查看“挠度图”、“裂缝图”,并执行“次梁加筋”,计算并布置次梁处附加筋。
5、 对图面做相应调整,“存图退出”,生成该层梁平面施工图PL*.T。
6、其他层梁平面施工图依次重复上述步骤。
十一、执行TAT-8主菜单C,柱归并(全楼归并)
1、输入适当的归并系数,一般取0.2。
2、生成各层梁归并图,ZGB-*.T。
十二、执行TAT-8主菜单E,接PK绘制柱施工图->平面图柱大样画法
1、选择“重新选筋”。
2、选择合适的“图纸号”,“结构平面图绘图比例”、“柱剖面大样绘图比例”。
3、执行“4 绘制施工图”,“选择楼层”进行各层柱平面施工图ZPM*.T的绘制。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)