Trước đây, đối với các phần mềm có sử dụng liên quan đến dữ liệu, thường khi làm người lập trình thường tích hợp việc giao tiếp với người sử dụng , xử lý rồi ghi xuống dữ liệu trên cùng một Form (mô hình 1 lớp). Nhưng trong kiến trúc 3 lớp (mô hình 3 lớp), phải có việc phân biệt giữa các lớp này. Mô hình 3 lớp có thể được mô tả như sau:
Hình 1. Mô hình lập trình 3 lớp
II. Ví dụ minh họa:
1. Tạo cơ sở dữ liệu: QLBN.mdb gồm 2 bảng như hình dưới
Hình 2. Cơ sở dữ liệu QLBN.MDB
2. Cửa sổ Solution Explorer bao gồm các Project:
Hình 3. Danh sách project trong solution QLBN
3. Lớp DBConnection.cs:using System;using System.Collections.Generic;using System.Text;using System.Data.OleDb;namespace DataAccessLayer{ public class DBConnection{ protected OleDbConnection con; public DBConnection(){ try{
con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=QLBN.mdb";
}
catch (Exception){
throw;
}
}
}
}
4. Lớp BenhNhanEntities.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace Entities{
[Serializable]
public class BenhNhanEntity{
private string diaChiBN; //Khai báo 04 trường (fields) của lớp BenhNhanEntity
private string tenBN;
private string maBS;
private string soCMND;
public BenhNhanEntity() { } //Hàm khởi dựng không có tham số
public BenhNhanEntity(string soCMND, string tenBN, string diaChiBN, string maBS){
this.diaChiBN = diaChiBN; //Hàm khởi dựng có tham số
this.tenBN = tenBN;
this.maBS = maBS;
this.soCMND = soCMND;
}
public string DiaChiBN{ //Hàm get, set để lấy ra hoặc thiết lập giá trị cho các field
get { return this.diaChiBN; }
set{
if (value == null)
throw new Exception("Địa chỉ không được để trống.");
this.diaChiBN = value;
}
}
public string TenBN{ //Hàm get, set để lấy ra hoặc thiết lập giá trị cho các field
get { return this.tenBN; }
set{
if (value == null)
throw new Exception("Họ tên BN không được để trống.");
this.tenBN = value;
}
}
public string MaBS{ //Hàm get, set để lấy ra hoặc thiết lập giá trị cho các field
get { return this.maBS; }
set{
if (value == null)
throw new Exception("Mã BS không được để trống.");
this.maBS = value;
}
}
public string SoCMND{ //Hàm get, set để lấy ra hoặc thiết lập giá trị cho các field
get { return this.soCMND; }
set{
if (value == null)
throw new Exception("soCMND không được để trống.");
this.soCMND = value;
}
}
public override string ToString(){
return this.diaChiBN + "; " + this.tenBN + "; " + this.maBS + "; " + this.soCMND + "; ";
}
public override bool Equals(Object obj){
return this.SoCMND.Equals(((BenhNhanEntity)obj).SoCMND);
}
public override int GetHashCode(){
return this.SoCMND.GetHashCode();
}
}
}
Tags: Visual Studio, Windows Form, 3 tiers, Mô hình 3 lớp
1 comments
h con sao ?
Reply