Tham khảo: Chuyển dữ liệu giữa các form.
Trong quá trình phát triển của ngành công nghệ thông tin, công nghệ phần mềm phát triển theo từng giai đoạn và phát triển theo các mô hình khác nhau. Trong bài viết này sẽ đề cập đến mô hình khá nổi tiếng và sau này được biến thể thành các mô hình khác. Mô hình 3 lớp.
Mô hình 3 lớp/tầng được nhắc đến trong bài viết này gồm các tầng/lớp sau: Data Layer(Dal), Business Layer (BUS) và Graphic User Interface (GUI).
Trong đó Dal là tầng chuyên để xử lý, lưu trữ, nhận dữ liệu. Tầng Bus là tầng dùng để tính toán, báo cáo thống kê. Tầng Gui là tầng giao diện người dùng.
Xem xét một bài toán đơn giản là nhập vào 2 số nguyên, sau đó hiển thị tổng 2 số đó theo mô hình 3 lớp. Phân tích như sau:
Như vậy, thiết kế dự án này theo cấu trúc sau:
Trong đó nội dung:
Code cho form 1.
Code cho form nhập.
Trong quá trình phát triển của ngành công nghệ thông tin, công nghệ phần mềm phát triển theo từng giai đoạn và phát triển theo các mô hình khác nhau. Trong bài viết này sẽ đề cập đến mô hình khá nổi tiếng và sau này được biến thể thành các mô hình khác. Mô hình 3 lớp.
Mô hình 3 lớp/tầng được nhắc đến trong bài viết này gồm các tầng/lớp sau: Data Layer(Dal), Business Layer (BUS) và Graphic User Interface (GUI).
Trong đó Dal là tầng chuyên để xử lý, lưu trữ, nhận dữ liệu. Tầng Bus là tầng dùng để tính toán, báo cáo thống kê. Tầng Gui là tầng giao diện người dùng.
Xem xét một bài toán đơn giản là nhập vào 2 số nguyên, sau đó hiển thị tổng 2 số đó theo mô hình 3 lớp. Phân tích như sau:
- Tầng DAL: cho phép lưu trữ 2 giá trị.
- Tầng BUS: Tính tổng 2 giá trị
- Tầng GUI: Hiển thị tổng 2 giá trị.
Như vậy, thiết kế dự án này theo cấu trúc sau:
Cấu trúc theo mô hình 3 lớp. |
namespace _3tier2so.BUS
{
interface ixuly
{
string TinhTong();
}
}
|
namespace _3tier2so.BUS
{
class clsXuly:ixuly
{ public DAL.clsSO CacSo { get; set; }
public string TinhTong()
{
int tong = CacSo.so1 + CacSo.so2;
return CacSo.so1.ToString() + " + " + CacSo.so2.ToString() +
" = " +
tong.ToString();
}
}
}
|
namespace _3tier2so.DAL
{
class clsSO:iSo
{
int _so1, _so2;
public int so1 { get { return _so1; }set { _so1 = value; } }
public int so2 { get { return _so2; }set { _so2 = value; } }
}
}
|
namespace _3tier2so.DAL
{
interface iSo
{
int so1 { get; set; }
int so2 { get; set; }
}
}
|
Giao diện cho form nhập 2 số. |
namespace _3tier2so
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnTong_Click(object sender, EventArgs e)
{
GUI.frmNhap
frm = new GUI.frmNhap();
frm.ShowDialog();
//doi tuong thuoc tang/lop DAL
DAL.clsSO so =
new DAL.clsSO();
so.so1 = int.Parse(frm.strso1);
so.so2 = int.Parse(frm.strso2);
//Doi tuong thuoc tang/lop BUS
BUS.clsXuly
xuly = new BUS.clsXuly();
xuly.CacSo =
so;
txtKetQua.Text
= xuly.TinhTong();
}
}
}
|
Code cho form nhập.
namespace _3tier2so.GUI
{
public partial class frmNhap : Form
{
public string strso1 { get; set; }
public string strso2 { get; set; }
public frmNhap()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
strso1 =
txtSothu1.Text;
strso2 =
txtSoThu2.Text;
this.Close();
}
}
}
|
Bài tiếp theo: [Lập trình Windows] Kết nối cơ sở dữ liệu