当前位置:网站首页>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 |
边栏推荐
- Read PG in data warehouse in one article_ stat
- Getting started with cinnamon applet
- Redis can only cache? Too out!
- Navicat运行sql文件导入数据不全或导入失败
- Talk about pseudo sharing
- Attribute keywords aliases, calculated, cardinality, ClientName
- flask session伪造之hctf admin
- 高等數學---第八章多元函數微分學1
- Move base parameter analysis and experience summary
- Flask session forged hctf admin
猜你喜欢
2022-7-6 Leetcode27.移除元素——太久没有做题了,为双指针如此狼狈的一天
Getting started with cinnamon applet
2022-7-7 Leetcode 34. Find the first and last positions of elements in a sorted array
Talk about pseudo sharing
Final review notes of single chip microcomputer principle
作战图鉴:12大场景详述容器安全建设要求
Introduction to database system - Chapter 1 introduction [conceptual model, hierarchical model and three-level mode (external mode, mode, internal mode)]
flask session伪造之hctf admin
【堡垒机】云堡垒机和普通堡垒机的区别是什么?
Excerpt from "misogyny: female disgust in Japan"
随机推荐
2022-7-6 sigurg is used to receive external data. I don't know why it can't be printed out
Custom thread pool rejection policy
flask session伪造之hctf admin
LeetCode简单题分享(20)
Redis can only cache? Too out!
Esp32 construction engineering add components
Sliding rail stepping motor commissioning (national ocean vehicle competition) (STM32 master control)
【面试高频题】难度 2.5/5,简单结合 DFS 的 Trie 模板级运用题
2022-7-6 Leetcode27. Remove the element - I haven't done the problem for a long time. It's such an embarrassing day for double pointers
Redis只能做缓存?太out了!
Advanced Mathematics - Chapter 8 differential calculus of multivariate functions 1
Flask session forged hctf admin
[fortress machine] what is the difference between cloud fortress machine and ordinary fortress machine?
如何让join跑得更快?
Leetcode simple question sharing (20)
Laravel5 call to undefined function openssl cipher iv length() 报错 PHP7开启OpenSSL扩展失败
社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟先生
Error lnk2019: unresolved external symbol
Fast development board pinctrl and GPIO subsystem experiment for itop-imx6ull - modify the device tree file
Clion mingw64 Chinese garbled code