三層架構(總結)

1.什麼是三層,有哪些三層?

  我理解的三層架構就是把整個業務或項目給分解成三個層:

(1)表示層 UI

(2)業務邏輯層 BLL

(3)數據訪問層  DAL

  既有數據訪問層,又有BLL層的時候,就需要三層的結構,當業務複雜到一定程度之後,數據訪問脫離業務,脫離UI的時候,就需要三層架構;使用三層會在設計階段有很明確完整的規劃,並且會讓軟件開發者有着清晰的思路去開發項目;三層結構適合大中型項目的開發,分層設計更容易解決數據庫升遷,升級維護所帶來的的一系列的問題,可以使程序代碼高內聚,低耦合。

 

2.每一層的作用:

  (1)UI 層:用戶直接可以看到,使用;爲用戶提供各種功能的實現;爲了數據庫收集用戶的各種信息;

                       不包含任何業務相關的邏輯處理。

先拿登錄界面舉個例子:

            //訪問BLL需要它提供的服務

            string userName = txtUserName.Text.Trim();
            string password = txtPassword.Text; 
            Login.BLL.LoginManager mgr = new Login.BLL.LoginManager();
            Login.Model.UserInfo user = mgr.UserLogin(userName, password);

            MessageBox.Show("登錄用戶:" + user.UserName);

 

  (3)BLL層:是業務邏輯層,(因爲現實層UI 不能直接和數據源DAL打交道)所以有了BLL業務邏輯層來作爲一種媒介,

                         通過UI傳遞過來的操作命令,然後決定執行業務邏輯,

                         在需要訪問的時候直接交給DAL數據訪問層處理,然後再返回必要的數據給UI。

           public Login.Model.UserInfo UserLogin(string userName, string password)
           { 
            throw new NotImplementedException();

            Login.DAL.UserDAO uDao = new Login.DAL.UserDAO();

            Login.Model.UserInfo user = uDao.SelectUser(userName, password);

            if (user !=null )        //如果登錄成功,就給該用戶增加積分。
            {
                Login.DAL.ScoreDao sDAO = new Login.DAL.ScoreDao();
                sDAO.UpdateScore(userName, 10);      //增加10積分
            }
            else
            {
                throw new Exception("登錄失敗");
            }

(2)DAL層:(1)從數據源加載數據(Select)

                         (2)向數據源寫入數據(Insert / Update)

                         (3)從數據源刪除數據(Delete)

              DAL層僅僅只是提供基本的數據訪問,不包含任何業務相關的邏輯處理。

      三層架構也可以理解成是“機房重構”的前奏。三層架構降低了系統代碼的耦合,分工明確,提高了效率和代碼的準確性。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章