当前位置:网站首页>Take you to master the three-tier architecture (recommended Collection)
Take you to master the three-tier architecture (recommended Collection)
2022-07-07 13:53:00 【Xiao Kai, who loves fishing】
Preface
Please pay attention to the following issues when reading this article :
1. What is a three-tier architecture ?
2. Why use a three-tier architecture ?
3. What is the difference between the three layers and the two layers used in the past ? What are its advantages ?
4. How to learn three-tier architecture well ? How to apply the three-tier architecture ?
One 、 What is a three-tier architecture
The three-tier architecture is to conform to “ High cohesion , Low coupling ” thought , Divide each function module into presentation layer (UI)、 Business logic
Series layer (BLL) and Data access layer (DAL) Three layer architecture , Each layer uses interface to access each other , And through the implementation of the object model
Body class (Model) As the carrier of data transmission , The entity classes of different object models generally correspond to different tables of the database , Entity
The attribute of the class is consistent with the field name of the database table .
Function division table of each module :
UI( The presentation layer ): | It mainly refers to the interface interacting with users . It is used to receive data input by users and display data needed by users after processing . |
BLL:( Business logic layer ): | UI Layer and the DAL The bridge between layers . Implement business logic . The business logic specifically includes : verification 、 Calculation 、 Business rules and so on . |
DAL:( Data access layer ): | Dealing with databases . The main purpose is to increase data 、 Delete 、 Change 、 check . Submit the data stored in the database to the business layer , At the same time, the data processed by the business layer is saved to the database .( Of course, these operations are based on UI Layer of . The user's needs are reflected in the interface (UI),UI Reflect to BLL,BLL Reaction to DAL,DAL Data manipulation , Step back after operation , Until the user needs data feedback to the user ) |
Three tier architecture operation flow chart :
How to connect the functional modules in the three-tier architecture ?
I want to mention Entity( Physical layer ): It doesn't belong to any of the three layers , But it is an essential layer . For a lot of data , Using variables as parameters is a little complicated , Because there are too many parameters , Easy to confuse . such as : I want to pass the employee information to the lower level , The information includes : Employee number 、 full name 、 Age 、 Gender 、 Wages ....... Using variables as parameters , Then there will be many parameters in our method , Most likely when used , Confuse parameter matching . Now , If you use entities as parameters , It will be very convenient , Don't consider the problem of parameter matching , You can use which attribute in the entity directly , Very convenient . This also improves efficiency .
Entity Role in three-tier architecture :
1. Implement the in object-oriented thinking " encapsulation "; |
2. Through the third floor , Transfer data between the three layers ;( notes : To be exact, the entity layer runs through the three layers , To connect the three layers ) |
3. For beginners , It can be understood in this way : Each data table corresponds to an entity , That is, the fields in each data table correspond to the attributes in the entity ( notes : Of course , In fact, it's not . Why? ? 1>) Maybe the entity we need does not exist in the entity corresponding to the data table 2>) We can put all fields in all data tables in one entity ) |
4. Each layer (UI—>BLL—>DAL) Data transfer between ( A one-way ) Is passed by variables or entities as parameters , In this way, the connection between the three layers is constructed , Completed the implementation of the function . |
( Add :3. in Why can we temporarily understand that each data table corresponds to an entity ??
The purpose of our system , Is to provide services for users , Users don't care how your system background works , Users only care about whether the software is easy to use , Whether the interface is in line with your own mind . The user interface is easy to add 、 Delete 、 Change 、 check , Then there should be corresponding additions in the database 、 Delete 、 Change 、 check , The specific operation object of adding, deleting, modifying and querying is the data in the database , To put it bluntly, the fields in the table . therefore , Treat each data table as an entity class , The attributes encapsulated by the entity class correspond to the fields in the table , In this case , When the entity runs through three layers , You can add, delete, modify and query data )
Between the three layers and the entity layer Dependency relationship :
Two 、 Why use a three-tier architecture
The purpose of the three-tier architecture is to “ High cohesion , Low coupling ”. A clearer division of developers , Focus more on the analysis of the core business logic of the application system 、 Design and development , Speed up the project , Improved development efficiency , It is conducive to the updating and maintenance of the project .
3、 ... and 、 The difference between three floors and two floors
Two layers of :
( When any place changes , Need to redevelop the whole system ." Multi-storey " On the first floor , Unclear division of labor and high coupling —— Difficult to adapt to changes in demand , Low maintainability 、 Low scalability )
Three layers :
( At what level does the change take place , Just change the layer , There is no need to change the entire system . A clear hierarchy , A clear division of responsibilities , Low coupling between each layer —— Improved efficiency , Adapt to changing needs , High maintainability , High scalability )
The advantages of three-tier architecture :
1. The structure is clear 、 Low coupling |
2. High maintainability , High scalability |
3. It is conducive to synchronous development tasks , Easy to adapt to changing needs |
Disadvantages of three-tier architecture :
1. It reduces the performance of the system . This is self-evident . If you don't use a layered structure , Many businesses can visit the database directly , In order to obtain the corresponding data , Now it has to be done through the middle tier . |
2. Sometimes it leads to cascading changes . This change is especially reflected in the top-down direction . If you need to add a function in the presentation layer , In order to ensure that its design conforms to the layered structure , You may need to add code in the corresponding business logic layer and data access layer |
3. Increased code , Increased workload |
边栏推荐
- mysql 局域网内访问不到的问题
- [1] Basic knowledge of ros2 - summary version of operation commands
- Cinnamon taskbar speed
- 118. Yanghui triangle
- Navicat运行sql文件导入数据不全或导入失败
- What are the principles for distinguishing the security objectives and implementation methods that cloud computing security expansion requires to focus on?
- requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement
- 干货|总结那些漏洞工具的联动使用
- 2022-7-7 Leetcode 34.在排序数组中查找元素的第一个和最后一个位置
- My "troublesome" subordinates after 00: not bad for money, against leaders, and resist overtime
猜你喜欢
Centso7 OpenSSL error Verify return code: 20 (unable to get local issuer certificate)
《厌女:日本的女性嫌恶》摘录
LIS longest ascending subsequence problem (dynamic programming, greed + dichotomy)
2022-7-7 Leetcode 844.比较含退格的字符串
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
室內ROS機器人導航調試記錄(膨脹半徑的選取經驗)
Flask session forged hctf admin
Supply chain supply and demand estimation - [time series]
Esp32 ① compilation environment
【堡垒机】云堡垒机和普通堡垒机的区别是什么?
随机推荐
Milkdown control icon
Parameter keywords final, flags, internal, mapping keywords internal
如何让join跑得更快?
最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航
PC端页面如何调用QQ进行在线聊天?
Split screen bug notes
[daily training] 648 Word replacement
Solve the cache breakdown problem
2022-7-6 Leetcode 977.有序数组的平方
高等數學---第八章多元函數微分學1
. Net core about redis pipeline and transactions
Mathématiques avancées - - chapitre 8 différenciation des fonctions multivariables 1
2022-7-6 使用SIGURG来接受外带数据,不知道为什么打印不出来
Redis只能做缓存?太out了!
Dry goods | summarize the linkage use of those vulnerability tools
Toraw and markraw
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
Xshell connection server changes key login to password login
Ikvm of toolbox Net project new progress
2022-7-6 Leetcode27.移除元素——太久没有做题了,为双指针如此狼狈的一天