软件开发的3层架构和多层架构的概念详解
- 格式:docx
- 大小:27.26 KB
- 文档页数:4
软件架构之四种类型简介如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。
这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
一、单体架构单体架构比较初级,典型的三级架构,前端(Web/手机端)+中间业务逻辑层+数据库层。
这是一种典型的Java Spring mvc或者Python Django框架的应用。
其架构图如下所示:单体架构单体架构的应用比较容易部署、测试,在项目的初期,单体应用可以很好地运行。
然而,随着需求的不断增加,越来越多的人加入开发团队,代码库也在飞速地膨胀。
慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。
下面是单体架构应用的一些缺点:复杂性高:以一个百万行级别的单体应用为例,整个项目包含的模块非常多、模块的边界模糊、依赖关系不清晰、代码质量参差不齐、混乱地堆砌在一起。
可想而知整个项目非常复杂。
每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个Bug都会带来隐含的缺陷。
技术债务:随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。
“不坏不修”,这在软件开发中非常常见,在单体应用中这种思想更甚。
已使用的系统设计或代码难以被修改,因为应用程序中的其他模块可能会以意料之外的方式使用它。
部署频率低:随着代码的增多,构建和部署的时间也会增加。
而在单体应用中,每次功能的变更或缺陷的修复都会导致需要重新部署整个应用。
全量部署的方式耗时长、影响范围大、风险高,这使得单体应用项目上线部署的频率较低。
而部署频率低又导致两次发布之间会有大量的功能变更和缺陷修复,出错率比较高。
可靠性差:某个应用Bug,例如死循环、内存溢出等,可能会导致整个应用的崩溃。
扩展能力受限:单体应用只能作为一个整体进行扩展,无法根据业务模块的需要进行伸缩。
例如,应用中有的模块是计算密集型的,它需要强劲的CPU;有的模块则是IO密集型的,需要更大的内存。
软件架构设计中的服务分层与权限控制随着互联网应用的不断发展,软件架构设计也越来越受到重视。
其中服务分层和权限控制是关键的环节。
本文将从这两个方面介绍软件架构设计的相关知识和技能。
一、服务分层所谓的服务分层,是指将系统中的不同功能分离出来,每个功能都作为一个独立的“服务”而存在。
这种设计可以使得系统更加模块化,易于扩展和维护。
在服务分层中,一般会将服务分为三层:1. 表示层表示层即用户界面,它负责接收用户输入和展示系统输出。
这一层就相当于我们平时用的手机App或者网站。
2. 业务逻辑层业务逻辑层负责处理各个功能的具体实现,包括逻辑运算、数据处理、业务规则等。
这一层就相当于系统的“大脑”。
3. 数据访问层数据访问层负责将数据从数据库中取出,并将结果返回给业务逻辑层。
这一层就相当于数据库的“小管家”。
通过服务分层的设计,不仅可以清晰地分离不同层之间的职责,还可以使得每一层的功能更加清晰明确,进而让系统更具可维护性和可扩展性。
二、权限控制在大多数应用中,权限控制都是非常重要的一环。
权限控制的目的是保障系统的安全,防止未授权的人员或者操作对系统进行恶意操作。
在权限控制中,一般有以下几个方面需要考虑:1. 用户认证认证是指判断用户是否真正具有登录系统的权限。
常见的认证方式包括用户名密码认证、短信验证码认证、第三方认证等。
在认证过程中,需要考虑到账号安全和用户体验等问题。
2. 用户授权授权是指授予用户某些操作或者访问某些资源的权限。
常见的授权方式包括角色授权和资源授权。
在授权过程中,需要考虑到系统架构设计和业务需求等问题。
3. 安全过滤安全过滤是指对用户请求进行拦截和过滤,以保证系统的安全。
常见的安全过滤方式包括参数拦截、跨站脚本攻击(XSS)过滤、SQL注入过滤等。
在安全过滤过程中,需要考虑到过滤效率和过滤准确性等问题。
通过权限控制的设计,不仅可以保障系统的安全,还可以使得系统更加灵活和易于维护。
在权限控制设计中,需要从多个方面进行考虑,以制定最佳的方案。
常用的技术架构1.分层架构(LayeredArchitecture):将系统划分为不同的层次,每个层次都有明确的职责和功能,层与层之间通过接口进行交互。
常见的分层架构有三层架构(PresentationLayer,BusinessLayer,DataLayer)和四层架构(PresentationLayer,ApplicationLayer,BusinessLayer,DataAccessLayer)。
2.微服务架构(MicroservicesArchitecture):将复杂的单体应用拆分为多个小型、自治的服务,每个服务独立部署、独立运行,通过轻量级的通信方式进行交互。
微服务架构提倡松耦合、高内聚,能够提高系统的灵活性和可伸缩性。
3.事件驱动架构(EventDrivenArchitecture):系统的各个组件之间通过事件进行通信和协作,每个组件都可以是事件的发布者和订阅者。
事件驱动架构适用于需要处理大量异步事件和具有较高实时性需求的系统。
4.服务导向架构(ServiceOrientedArchit ecture,SOA):将系统按照业务领域进行拆分,每个业务领域都通过服务暴露出自己的功能。
服务之间通过标准化的接口进行通信,实现解耦和复用。
5.容器化架构(ContainerizedArchitecture):将应用程序和其依赖打包为容器,以实现跨平台的部署和运行。
容器化架构可以使用容器编排工具来管理和扩展应用程序,提高开发效率和系统的可维护性。
6.事件溯源架构(EventSourcingArchitecture):将系统的状态和状态改变都保存为事件,通过回放事件来恢复系统的状态。
事件溯源架构可以提供更好的数据可追溯性和历史数据分析。
7.响应式架构(ReactiveArchitecture):基于响应式编程的思想,通过使用异步消息传递、非阻塞IO等技术实现高并发、高可扩展性和响应性的系统。
8.BigData架构:用于处理大规模数据的系统架构,包括数据采集、存储、处理和可视化等组件。
什么是分层架构,分层架构的优缺点1.分层架构的定义当我们说⼀个系统是分层架构的时候,你可以把这个软件想象成⼀个有很多层的蛋糕的样⼦,其中每⼀层放在它的下⼀层上。
较⾼层使⽤诸多较低层定义和提供的服务,但较低层并没有察觉较⾼层的存在。
另外,每⼀层都会对其上层隐藏更低的层。
——马丁福勒, 《企业应⽤架构模式》, P17想要了解分层的本质,就不得不说说分⼯。
分⼯可以说是劳动⽣产⼒上最⼤的改良,最初分⼯的好处体现在“⽐较优势”上,由于各司其职,每个⼈可以从事其最擅长的劳动,再加上单纯劳动所带来的劳动熟练度提升和减少了更换劳动时的损失,使得劳动⽣产率⼤幅提升。
然⽽,随着社会的发展,我们发现某些特殊形式的分⼯不但可以提⾼⽣产⼒,还有另⼀些好处!2.优点i.分离开发⼈员的关注ii.⽆损替换iii.降低了系统之间的依赖iiii.复⽤3.缺点i.级联修改问题。
这个问题在现实中不好⽐喻,但在程序中相信很多朋友都明⽩。
例如,⼀个⼈事管理系统,本来查看⼈员信息只能分页查看,⽽现在,需要增加⼀个功能:在分页的同时还能分部门。
例如,可以查看“销售部的前50个⼈”,这样,为了这个功能所有层都需要修改。
ii.性能问题。
本来直来直去的操作,现在要层层传递,势必造成性能的下降。
就如在购买蛋糕的例⼦中。
顾客在享受分⼯带来的便利时,也要承受由于不同层的部门分布各地⽽造成的蛋糕价格上升,这是因为分层增加了成本,如运输、不同层间部门的协调管理成本等。
4.总结分层架构有利有弊。
这是⼀定的,世上任何事物都有利弊,所以,把“分层架构捧上天”和“⼀棍⼦打死”这两种做法都是不明智的。
对待分层架构,我们的态度应当是明晰其本质和利弊,然后根据具体情况做出理性的分析和抉择。
从上⾯的分析可以看出,分层架构可以降低层内变化的成本,⽽对于API的变化⾮常敏感。
如在级联修改中提到的“在分页的同时还能分部门”的新需求,就是对API进⾏的变动。
API的变动对于分层架构是致命的,修改起来难度⾮常⼤。
三层CSBS架构简易知识三层CS架构指的是客户端-服务器架构,其中包含三个层次:展示层、业务逻辑层和数据访问层。
这种架构将整个系统的功能分层,使得各个层次之间的关注点分离,便于系统的维护和扩展。
展示层(Client Tier)是用户直接与系统进行交互的界面,可以是桌面应用程序、移动应用程序或Web应用程序。
展示层向用户展示数据和功能,并接收用户的输入。
在三层架构中,展示层的职责主要是处理用户界面逻辑,将用户请求发送给业务逻辑层,并将业务逻辑层返回的结果显示给用户。
业务逻辑层(Business Logic Tier)是整个系统的核心,负责处理展示层发送过来的请求,进行业务处理并返回结果给展示层。
业务逻辑层包含了系统的业务逻辑,可以调用数据访问层进行数据的增删改查操作,也可以调用其他系统或服务进行协作。
业务逻辑层的职责是处理业务逻辑,保证系统的正确性和可靠性。
数据访问层(Data Access Tier)是负责与数据库进行交互的层次。
数据访问层封装了与数据库的交互细节,提供统一的接口给业务逻辑层进行数据的操作。
数据访问层主要包括数据访问对象(DAO)和数据库连接管理组件。
数据访问层的职责是处理数据的存储和获取,提供高效可靠的数据访问接口。
相对于三层CS架构,BS架构指的是浏览器-服务器架构,其中包含两个层次:前端层和后端层。
这种架构将系统的功能分布在客户端和服务器端,使得用户可以通过浏览器访问应用程序,无需安装任何软件。
前端层(Frontend Layer)是用户直接与系统进行交互的界面,一般使用HTML、CSS、JavaScript等前端技术进行开发。
前端层负责显示用户界面,并处理用户的交互行为。
前端层将用户的请求发送给后端层,并将后端层返回的结果显示给用户。
前端层的职责是处理用户界面逻辑,提供友好的用户体验。
后端层(Backend Layer)是整个系统的核心,负责处理前端层发送过来的请求,进行业务处理并返回结果给前端层。
软件架构和设计模式在我们的现代化社会中,各种软件的存在对我们的生活产生了非常重要的影响,如何构建高质量的软件已经成为了一项非常重要的任务。
软件架构和设计模式是构建优质软件的两个非常重要的组成部分,本文将分别从这两个方面进行阐述。
软件架构软件架构是指在系统设计过程中用于描述系统各个部分之间关系的一种方式。
一般来说,软件架构可以分为三个层次:应用架构、中间件和基础设施。
应用架构负责提供特定的业务功能,中间件作为应用架构的一个中间层,负责提供一些通用服务,如通信、安全性以及监控等,基础设施则是实际计算资源的部分,如云计算平台或数据中心。
软件架构的好处之一是它可以提供一种共同语言,以便所有团队成员之间进行更好的交流与合作。
通过软件架构,开发人员可以了解系统中各个组件的职责以及彼此之间的依赖关系,这有助于他们更好地协同工作。
另一个好处是软件架构可以帮助我们实现系统的可伸缩性。
这是因为架构设计者可以在系统设计阶段考虑到未来的需求并相应地设计系统。
例如,如果预计系统将需要在更多的服务器上运行,则需要设计一种能够支持水平扩展的架构。
将来应用程序的需求可能会发生大量更改,但是软件架构可以帮助确保系统设计的灵活性和可扩展性。
设计模式设计模式可以定义为已经被多次证明可以以可靠方式解决特定问题的方案。
设计模式是一种精美的黄金系统,其中的每个模式都已经独立于任何语言或领域进行过解释和测试。
可以将设计模式看作是一种提供设计思路的方法集。
设计模式分为三个主要类别:创建型、结构型和行为型。
创建型设计模式处理有关对象创建的问题,包括对象的实例化和构建。
结构设计模式有助于定义类和对象之间的关系,以便他们更好地协同工作。
行为设计模式则处理与对象之间的通信以及对象的职责和交互有关的问题。
除了简单地将这些设计模式应用于开发过程中,还可以在开发团队中共享和传承这些设计模式。
当团队在开发新的部分时,已经存在的模式将为他们提供参考,这有助于提高代码的一致性、可读性和可维护性。
各系统搭建方式和逻辑系统的搭建方式和逻辑通常取决于系统的性质和目的。
不同类型的系统会采用不同的架构和设计模式。
以下是一些常见的系统搭建方式和逻辑:1. 分层架构- 将系统划分为多个层次,每一层负责特定的职责和功能- 常见层次包括:表示层(用户界面)、业务逻辑层、数据访问层等- 每层只与相邻层通信,遵循高内聚低耦合原则2. 微服务架构- 将整个系统拆分为一组小型、自治的服务- 每个微服务负责单一业务能力,通过轻量级协议相互通信- 提高系统的可伸缩性、灵活性和容错性3. 事件驱动架构- 系统的各个组件通过生产和消费事件进行通信- 使用消息队列或事件流作为事件的传递管道- 支持高度解耦、异步处理和横向扩展4. 面向服务架构(SOA)- 将系统功能封装为可重用的服务- 服务通过标准协议(如SOAP、REST)进行通信- 支持系统集成和业务流程编排5. 三层架构- 常见于传统的企业应用程序- 包括表示层(用户界面)、业务逻辑层和数据访问层- 每层负责特定的职责,彼此通过接口进行通信6. 模型-视图-控制器(MVC)- 将应用程序划分为模型(数据)、视图(用户界面)和控制器(业务逻辑)- 控制器接收用户输入,操作模型,并更新视图- 常用于Web应用程序和GUI应用程序7. 管道架构- 将系统划分为一系列有序的阶段或步骤- 数据在管道中流动,每个阶段对数据执行特定的操作- 常用于数据处理和流式处理系统这些只是一些常见的系统搭建方式和逻辑,实际情况下还可能结合多种架构和模式,以满足特定的系统需求和约束条件。
选择合适的架构和设计模式对于构建高质量、可维护和可扩展的系统至关重要。
计算机多级层次结构的意思计算机多级层次结构是指计算机系统被分为多个不同的层次或抽象级别,每个层次负责特定功能,从而形成一种层次化的组织结构。
这种结构的设计理念是通过将计算机系统划分为不同的层次,使得系统的构建和管理更加清晰、模块化和可扩展。
多级层次结构的设计目的是将复杂的计算机系统分解为多个相对独立的功能模块,使得每个模块都可以逐层构建、测试和调试,从而提高系统开发和维护的效率。
同时,多级层次结构能够提供更高的灵活性和可扩展性。
例如,系统的一些层次可以根据需求进行修改或替换,而无需对其他层次进行大规模的改动。
多级层次结构通常由以下几个层次组成:1.应用层:最接近用户的层次,负责实现特定的应用功能。
例如,图形界面、文档处理和数据库管理等。
2.操作系统层:负责管理计算机硬件资源,提供基本的操作系统功能,如进程管理、文件管理和内存管理等。
3.中间件层:提供应用程序开发和运行所需的中间环境。
例如,数据库管理系统(DBMS)和消息传递中间件等。
4.硬件层:最底层的层次,包括计算机的物理设备,如处理器、存储器和输入输出设备等。
硬件层通过底层的机器语言和微指令来执行具体的计算和数据处理任务。
多级层次结构的优点包括:1.模块化和可复用性:每个层次都具有相对独立的功能和接口,可以单独进行开发和测试,并且可以在不同的系统中复用。
2.可扩展性:新增或修改其中一层次的功能可以在不影响其他层次的情况下进行,从而提高系统的灵活性和可扩展性。
3.可维护性:通过层次化的组织结构,系统的修改和维护更加容易,可以快速定位和解决问题。
4.封装性:每个层次都对其下层次的实现细节进行了封装,使得系统更加易用和稳定。
然而,多级层次结构也存在一些挑战和问题1.性能损失:由于系统的模块化和接口化设计,层次之间的数据传输和接口调用可能会引入额外的开销,导致性能下降。
2.跨平台兼容性:不同平台的层次结构可能有所差异,需要特殊的处理和适配。
3.依赖关系:层次之间存在依赖关系,一些层次的修改可能会影响到其他层次,需要谨慎管理和协调。
软件架构设计中的分层与模块化原则在软件架构设计中,分层与模块化原则是至关重要的。
它们可以帮助开发人员组织和管理复杂的软件系统,提高开发效率和可维护性。
本文将介绍分层与模块化原则的概念以及它们在软件架构设计中的应用。
一、分层原则分层原则是指将软件系统划分为多个相互独立的层次,每个层次负责不同的功能。
每个层次之间通过明确的接口进行通信和数据传递。
分层原则有助于减少系统的耦合度,提高系统的可复用性和可扩展性。
在软件架构设计中,常见的分层方式包括三层架构和四层架构。
三层架构由表示层、业务逻辑层和数据访问层组成,每个层次都有独立的责任和功能。
表示层负责与用户进行交互,业务逻辑层负责处理业务逻辑,数据访问层负责与数据库进行数据交互。
四层架构在此基础上增加了一个应用层,用于处理不同应用之间的交互。
分层原则可以有效地将系统的各个功能模块进行隔离,降低模块之间的依赖性。
当一个模块需要修改时,只需关注该模块所在的层次,而不用担心对其他层次的影响。
这样可以降低系统的维护成本,并且便于对模块进行单元测试和重用。
二、模块化原则模块化原则是指将软件系统划分为多个相互独立的模块,每个模块都有明确定义的功能和接口。
模块之间通过接口进行通信和数据传递。
模块化原则有助于提高系统的可维护性和可重用性,减少系统的复杂度。
在软件架构设计中,常见的模块化原则包括单一职责原则和开闭原则。
单一职责原则要求每个模块只负责一项特定的功能,避免一个模块承担过多的责任。
这样可以提高模块的内聚性,降低模块之间的耦合度。
开闭原则要求软件系统对扩展开放,对修改关闭。
通过定义良好的接口和抽象类,可以在不修改现有代码的情况下进行功能扩展。
模块化原则使得软件系统更加易于理解和维护。
每个模块都有清晰的职责和接口,开发人员可以独立地编写和测试每个模块。
当需求发生变化时,只需修改相应的模块,而不用修改整个系统。
模块的重用性也得到了提高,可以将已有的模块直接引入到新的系统中,减少重复开发的工作量。
嵌入式软件架构设计之分层设计嵌入式软件架构设计中,分层设计是一种常用的设计模式,它将系统划分为多个层次,并定义了每个层次的功能和职责,实现了模块化、可维护、可扩展的软件系统。
本文将介绍嵌入式软件架构设计中的分层设计,并阐述其重要性及优势。
分层设计是指将整个软件系统划分成不同层次的模块,每个模块都有其特定的功能和职责。
分层设计的主要目标是实现模块的独立性和可重用性,在不同层次之间建立清晰的界限,减少模块之间的依赖性,提高系统的可维护性和可扩展性。
分层设计通常包括以下几个层次:1.应用层:应用层是系统的最高层,负责处理用户界面和用户交互逻辑。
它与底层硬件和中间层进行通信,向用户提供统一的界面,并将用户的请求转发给相应的模块进行处理。
2.业务逻辑层:业务逻辑层负责处理系统的核心业务逻辑,独立于具体的实现细节。
它通过调用底层的服务接口实现业务逻辑的处理和数据的访问,可以进行事务的管理和错误处理等操作。
3.数据访问层:数据访问层负责与底层的数据库或文件系统进行交互,实现数据的持久化和访问。
它包括数据库的连接和查询操作,文件的读写操作等。
4.服务层:服务层提供系统的核心功能和服务,独立于具体的应用。
它通过调用底层的服务接口实现功能的处理和数据的访问,可以进行事务的管理和错误处理等操作。
5.硬件层:硬件层是指系统的底层硬件和设备驱动程序,包括操作系统、外部设备等。
它负责与硬件进行通信,获取传感器的数据、控制执行器的动作等。
分层设计的重要性和优势主要体现在以下几个方面:1.模块化和可重用性:分层设计将系统划分成多个层次的模块,每个模块都有明确的功能和职责,可以独立开发、测试和维护,提高了模块的可重用性。
2.接口和依赖管理:分层设计通过定义清晰的接口和依赖关系,减少模块之间的耦合度,提高了系统的可维护性。
当一个模块需要修改时,不会影响到其他模块的功能。
3.系统扩展性:分层设计将系统划分成多个层次,每个层次可以独立扩展,不会影响整个系统的功能和性能。
软件开发的3层架构和多层架构的概念详解
1 :三层架构:
1)数据访问层:DAL:用于实现与数据库的交互和访问,从数据库猎取数据或保存数据到数据库的部分。
2)业务规律层:BLL:业务规律承上启下,用于对上下交互数据进行规律处理,实现业务目标。
3)表示层:Web主要实现和用户的交互,接受用户或返回用户恳求的数据结果的呈现,而详细的数据处理则会交给业务规律层和数据访问层去处理。
4)业务实体Modeh用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用以描述业务中客观存在的对象。
Model分别出来时为了更好地解耦,更好的发挥分层、复用、扩展增加敏捷性。
5)通用Common:通用的帮助工具类(数据校验、加密解密、缓存处理等)
6)数据库访问类时对ADONET的封装,封装了一些常用的重复的数据库操作。
微软的企业库SQLHelper.cs,为DAL供应访问数据库的帮助工具。
数据摩
2:三层架构:
(高)内聚:一个模块内各个元素彼此相关联的紧密程度
(低)耦合:软件结构内不同模块之间依靠程度的度量。
优点1:三层结构将表示部分和业务规律部分根据客户层和应用服务器分别,客户端和应用服务㈱、应用服务器和数据库服务器之间的通信以及异构平台之间的数据交换都可以通过中间件或者相关程序来实现。
复用降低、周期缩短、维护便利。
优点2:分层结构将数据访问和规律操作都集中到组件中,增加了系统的复用性。
CS. BS 系统通用底层。
不管是、WINFORM、VVebService
优点3:系统的扩展性大大增加。
缺点:分层多开发工作量大。
数据不直接提取降低性能。
级联修改,表示层增加一个功能。
3:三层架构实例演示:
1:新建》项目分其它类型项目今ViSUaIStlIdi。
解决方案今保存:
2:解决方窠今添加》新建项目)其它语言Visual C#今类库
3:详细项目)属性6程序集名称+默认命名空间
程序集名称:指定将包含程序集清单的输出文件的名称,即最终生成的文件名。
默认的命名空间:指定添加到项目中的文件的基命名空间。
为了统一,一次设置项目的前缀为公司缩写等。
这样每次在项目中添加类文件时,类文件的命名空间的前最就会自动带上MatiCSOft.顶级命名空间。
4:详细项目分里史添加引用分项目6保存就可应用
m a固固回国国》
二解决方案'EyFirstThreeLayer'菽个项目
司M BLL
E , IiSti Properties
⅛∙∙∙ Ld引用
图Product, cs
B -Common
E- [⅛⅛ Properties
⅛∙∙∙ Sa引用
酉Function, cs
-.> D Λ.. ∖I∙b∖
L‹j APP-D“a
B ∖βa J∕Bin
匚M<ti cιoft.BUL ai
/ Uaiticsoft. BLL pdb
& Baticsoft. Common. dll
闰Uaticsoft. CoMon. pdb
W Uaticsoft.DALdll
⅛ Haticsoft.DALpdb
Q Maticsoft.DBUtility. dll
国Maticsoft. DBUtxlity. pdb
< Uaticsoft. Model. dll
组Maticsoft. Model. pdb
θ ◎CssStylt
W LLJ >*M∙s
A¾ Styl∙Sh∙∙tl. css
Ξ g Product
⅛∙∙三J AddCollege. aspx
⅛∙∙∙L11AllCollege. aspx
由…L U Show. aspx
B ∙国Default. aspx
jj> Web. config
S DAL
E U⅛ Properties
Ξ 3引用
-ODBUtility
∙□ lod∙l
System ∙□ Syst∙m. Data ∙<□ Syxttm. Xml 闻Pro如ct. cs 3 3)DBUtility ⅛∙∙ Properties ⅛∙∙∙囱引用图DbHelperSQL. cs
白…d]Model
[±] , Properties
E N引用
当Pro如ct. cs
HnaDeSPd8 Haticsoft.DButility
/// <sunκ>ary>
///数据访问抽票基础类 /// <∕suπβwry>
public class DbHelperSQL
看符阜Qeb.COnfi 8未配置).可以动态更改COnneCtigString 支持多数 public DbHelperSQL()∣Γ77∣
/// <su≡Mry>
///返回一个给定的青词语句的结果柒合 /// <∕suD∞ry>
public SqlDataRea4er ExecuteReader (string sxιl)Γ771 /// <sunn»ry> ///无返回的宣询语句 /// <∕suπ≡>ary>
public int EXCCUteNOJTQUery(String SQl)
int resultNum = 0; try
s<)lcon. OpenO;
Sqkrod = new SqlCoiTmwdGql. sqlcon); result Num=sglcπκL EjccuteNorCugryO; I return rcsultNum. ∣ )1 ------------------------------ 1 catch (SqlException ex)
throw new Exception (ex.Iessage, ex), finally sqlcon. CloseO.
)
}
4:基于工厂模式的三层结构模型:
解决方案9个项目及其描述 序号 项目名称 类型 描述
1 BLL 类库项目 业务规律层
2 Common 类库项目 通用类库
3 DALFactory 类库项目 抽象工厂
4 DBUtiIity 类库项目 数据库操作类
5 IDAL 类库项目 数据库访问层抽象接口
6 Model
类库项目 数据实体
7 OracleDAL
类库项目
基于OniCle 的数据访问层 8
SQLServerDAL 类库项目 基于SQLSerVer 数据访问层
9 Web
VVeb 表示层
业务实体
层之间调用关系:Web∙>BLL, BLL调用DALFactory来打算要创建哪个DAL的对象的接口,然后返回给BLL的是IDAL对象。
IDAL接口是一系列“功能”的声明和名单,接口并没有实现细节,只是一些功能方法的定西。
SQLSCrVerDAL和OraCIeDAL均继承自IDAL 接口,并实现了接口定义的全部功能。
相当于全部的数据访问层被封装起来了,暴露在外面的就是IDAL接口被调用。
MOdel作为一种数据结构(类似C中的结构体)在各层之间传递和使用。