三層架構(3-tier architecture) 通常意義上的三層架構就是將整個業務應用劃分為:
表現層(presentation layer)、業務邏輯層(business logic layer)、資料訪問層(data access layer)。
區分層次的目的即為了"高內聚低耦合"的思想。
高內聚低耦合,是軟體工程中的概念,是判斷設計好壞的標準,主要是物件導向的設計,主要是看類的內聚性是否高,耦合度是否低。
內聚就是乙個模組內各個元素彼此結合的緊密程度,高內聚就是乙個模組內各個元素彼此結合的緊密程度高。
所謂高內聚是指乙個軟體模組是由相關性很強的**組成,只負責一項任務,也就是常說的單一責任原則。
耦合:乙個軟體結構內不同模組之間互連程度的度量(耦合性也叫塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。
模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越差,模組間耦合的高低取決於模組間介面的複雜性,呼叫的方式以及傳遞的資訊。)
對於低耦合,粗淺的理解是:
乙個完整的系統,模組與模組之間,盡可能的使其獨立存在。
也就是說,讓每個模組,盡可能的獨立完成某個特定的子功能。
模組與模組之間的介面,盡量的少而簡單。
如果某兩個模組間的關係比較複雜的話,最好首先考慮進一步的模組劃分。
這樣有利於修改和組合。
三層架構,如下圖:
1、表現層(ui):通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。
2、業務邏輯層(bll):針對具體問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。
3、資料訪問層(dal):該層所做事務直接運算元據庫,針對資料的增添、刪除、修改、查詢等。
示例:
1admin.py#coding:utf823
from utility.sql_helper import
mysqlhelper45
class
admin(object):
6def
__init__
(self):
7 self.__helper =mysqlhelper()89
defget_one(self,id):
10 sql = "
select * from userinfo where id = %s
"11 params =(id,)
12return self.__helper
.get_one(sql, params)
1314
defcheckvalidate(self,username,password):
15 sql = "
select * from userinfo where name=%s and password=%s
"16 params =(username,password,)
17return self.__helper
.get_one(sql, params)
1819
1sql_helper#coding:utf8
2import
mysqldb
3import
conf45
6class
mysqlhelper(object):
7def
__init__
(self):
8 self.__conn_dict =conf.conn_dict
9def
get_dict(self,sql,params):
10 conn = mysqldb.connect(**self.__conn_dict
)11 cur = conn.cursor(cursorclass =mysqldb.cursors.dictcursor)
1213 recount =cur.execute(sql,params)
14 data =cur.fetchall()
1516
cur.close()
17conn.close()
18return
data
1920
defget_one(self,sql,params):
21 conn = mysqldb.connect(**self.__conn_dict
)22 cur = conn.cursor(cursorclass =mysqldb.cursors.dictcursor)
2324 recount =cur.execute(sql,params)
25 data =cur.fetchone()
2627
cur.close()
28conn.close()
29return data
1conf.py#coding:utf8
23 conn_dict =dict(
4 host='
127.0.0.1',
5 user='
root',
6 passwd='
123456',
7 db ='
admin
'8 )
1index.py#coding:utf823
from module.admin import
admin45
defmain():
6 user=raw_input('
username:')
7 pwd=raw_input("
password:")
8 admin =admin()
9 result =admin.checkvalidate(user, pwd)
10if
notresult:
11print
'使用者名稱或密碼錯誤'12
else:13
'進入後台登入介面'14
15if
__name__== '
__main__':
16 main()
c mysql三層架構例項 三層架構例項
一 概要 這篇部落格,準備用乙個小demo來介紹應該實現三層架構。三層架構只是分層的一種經典形式,到底分幾層,要依具體情況而定,考慮到系統的複雜程度,和後期的可維護性,完全可以分四層,五層,甚至六層,七層。二 demo 1 實現語言 vb.net 2 需求 學校機房收費系統 中的乙個功能 操作員為學...
軟體架構 三層架構
三層系統的分層式結構 三層架構 3 tier architecture 通常意義上的三層架構就是將整個業務應用劃分為 區分層次的目的即為了 高內聚,低耦合 的思想。表現層 ui 通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。業務邏輯層 bll 針對具體問題的操作,也可以說是...
三層架構 UI BLL DAL
通常意義上的三層架構就是將整個業務應用劃分為 表現層 ui 業務邏輯層 bll 資料訪問層 dal 區分層次的目的即為了 高內聚,低耦合 的思想。表現層 ui 通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。業務邏輯層 bll 針對具體問題的操作,也可以說是對資料層的操作,對...