一、分層模式php
在使用分層設計模式編寫代碼以前,咱們更多的是採用面向過程而後眉毛鬍子一把抓,在一兩個程序代碼裏寫完全部的功能,這樣只適合於小型我的項目。由於不利於閱讀和修改,只有編程的我的比較熟悉程序的結構。這不利於程序的擴展性和協同開發。因此,咱們引入一個固定的模式來進行編程,使得全部代碼結構清晰明確,並且易於擴展延伸。java
此處介紹的一種模式是分層模式。把程序分紅幾個層次:界面層、業務邏輯層、數據層。mysql
界面層:主要功能就是實現界面的顯示。好比要在登錄頁面顯示輸入框之類,就須要login.php中放入form表單。好比要顯示僱員信息,就須要empList.php來顯示從數據庫中獲取的信息。可是,login.php中獲取的輸入數據是否合法與界面層無關;empList.php中顯示的信息界面層也不用管來自哪裏,它只要完成顯示就行。具體這些數據操做都交給業務邏輯層來作,它要作的只是接受業務邏輯層反饋回來的結果並做出相應顯示便可。程序員
業務邏輯層:主要功能是實現邏輯處理,與界面層無關。該層主要包括 Admin.class.php,AdminService.class.php,Emp.class.php,EmpService.class.php等,Admin、Emp表示數據庫中的兩張表。算法
其中,Admin.class.php、Emp.class.php均爲類,類內的成員變量就是各個表格本身的屬性;sql
AdminService.class.php、EmpService.class.php均爲類,主要做用就是爲兩張表格的操做提供函數支持;數據庫
除此以外,業務邏輯層還包括 SqlHelper.class.php助手類,主要提供mysql數據庫操做支持。其餘函數想要對數據庫進行操做都要經過調用該助手類來操做數據庫,例如完成 增刪改查 操做。編程
數據層:就是指mysql數據庫,在數據庫裏存放着要使用的表格Admin和Emp。這是最低層的數據庫資源。設計模式
針對僱員信息管理系統,來分別講解着三個層:mvc
界面層:login.php empList.php等:login.php負責顯示錶單供用戶輸入,輸入數據的合法性交給loginProcess.php來處理,而loginProcess.php又會去調用AdminService.class.php中的CheckAdmin()函數來驗證並返回結果。
empList.php負責來顯示僱員信息,它的數據來自empManage.php,而這個php又會調用EmpService.class.php來實現實際操做。
業務邏輯層:CheckAdmin()經過調用sql助手類來對數據庫操做,驗證輸入的信息是否合法。
SqlHelper.class.php助手類主要提供各類對數據庫的基本操做,例如:構造函數要實現獲取鏈接、指定數據庫、設置編碼格式;execute_dql($sql)實現執行查詢指令,返回$res;execute_dml($sql)實現增刪改操做,返回$res;mysql_close_conn()自動關閉助手類中定義的鏈接。
數據層:就是最低層的數據庫。
二、mvc模式
三、設計模式
設計模式(Design pattern)是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的;設計模式使代碼編制真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結構同樣。
1
2
3
4
5
6
7
8
9
10
11
|
publicclassDiscFactory{
publicstatic光盤getDisc(Stringname){
//return(光盤)Class.forName(name).getInstance();
return (光盤)Class.forName(name).newInstance();
}
}
|
1
2
3
4
5
6
|
publicclass小子{
publicstaticvoidmain(String[]args){
光盤d=DiscFactory.getDisc( "盜版盤" );
d.賣();
}
}
|
1
2
|
光盤d= new 盜版盤();
d.賣();
|
1
2
|
光盤d= new 盜版盤();
d.賣();
|