Ngôn ngữ hướng đối tượng mới C# của hãng
Microsoft có ảnh hưởng nhiều từ các ngôn
ngữ Java và C++. Tuy nhiên có nhiều tính
năng mới và hữu hiệu đã được bổ sung để
đơn giản hóa cho quá trình xây dựng và thiết
kế các hệ thống hướng đối tượng.
Hệ thống truy xuất dữ liệu do chúng tôi xây
dựng và thiết kế ở đây dựa trên cơ sở của mẫu
thiết kế Template Method trong lập trình
hướng đối tượng, kết hợp với mô hình kiến
trúc của hệ thống nhiều tầng. Hệ thống được
cài đặt bằng ngôn ngữ C#, đã được chạy thử
nghiệm, bảo đảm đúng các yêu cầu của bài
toán đặt ra, thuận tiện cho công việc bảo trì và
mở rộng phát triển.
Trong tương lai chúng tôi sẽ tiếp tục mở rộng
và cải tiến hệ thống xử lý cho các bài toán
khác, kết hợp với các mẫu thiết kế khác, tối
ưu các lớp và các phương thức trong hệ thống
để nâng cao tính hiệu quả và các khả năng tái sử
dụng. Nghiên cứu về việc làm mịn các mẫu
thiết kế. Áp dụng các mẫu và kết hợp chúng để
giải quyết các bài toán trong thực tiễn.
8 trang |
Chia sẻ: thucuc2301 | Lượt xem: 679 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Mẫu thiết kế template method và ứng dụng trong xử lý dữ liệu - Nguyễn Mạnh Đức, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
31
MẪU THIẾT KẾ TEMPLATE METHOD VÀ ỨNG DỤNG
TRONG XỬ LÝ DỮ LIỆU
Nguyễn Mạnh Đức*
Trường Đại học Sư phạm – ĐH Thái Nguyên
TÓM TẮT
Trong công nghệ phần mềm, mẫu thiết kế là một giải pháp tổng thể cho các vấn đề chung
trong thiết kế phần mềm. Ý tưởng sâu xa của các mẫu thiết kế là để tiết kiệm tốt các giải pháp thiết
kế hướng đối tượng và việc tái sử dụng chúng để giải quyết các vấn đề tương tự. Trong bài báo
này chúng tôi sẽ xem xét mẫu thiết kế Template Method do E. Gamma và các cộng sự đã đề xuất,
áp dụng mẫu này để xây dựng và thiết kế một hệ truy xuất tới một cơ sở dữ liệu trên máy chủ, theo
mô hình hệ thống nhiều tầng để thực hiện các công việc xử lý dữ liệu cho các yêu cầu của bài toán
đặt ra trong thực tiễn. Từ đó có một cái nhìn sâu sắc hơn một số mẫu thiết kế có thể thực hiện
trong C#, tìm hiểu các tính năng mới của ngôn ngữ trong thực tế làm cho dễ dàng và hiệu quả hơn
trong thiết kế phần mềm hướng đối tượng.
Từ khóa: Mẫu thiết kế, mẫu Template Method, lớp trừu tượng, giao diện, phương thức trừu
tượng, phương thức ảo, ghi đè, hệ thống nhiều tầng, ngôn ngữ mô hình hóa thống nhất UML
GIỚI THIỆU*
Ngày nay lập trình hướng đối tượng đã
được sử dụng phổ biến để xây dựng, phát
triển các hệ thống phần mềm lớn và phức
tạp. Do tính linh hoạt trong các ngôn ngữ
hướng đối tượng cho phép chúng ta phân
chia mã của chúng vào các đối tượng và các
lớp, làm cho phong cách lập trình này trở nên
trong sáng và hữu hiệu trong việc giải quyết
nhiều vấn đề mà các phương pháp lập trình
trước đây còn nhiều hạn chế. Một mục tiêu
khác của thiết kế chương trình theo hướng đối
tượng là để làm cho mã tái sử dụng nhiều
hơn. Tuy nhiên thực tế đã chứng minh rằng,
thiết kế phần mềm hướng đối tượng tái sử
dụng không phải lúc nào cũng dễ dàng. Một
thiết kế phần mềm tốt, không chỉ giải
quyết vấn đề đang tồn tại, mà còn liên quan
đến các vấn đề trong tương lai. Nó sẽ phải
làm cho chương trình linh hoạt, dễ dàng
để bảo trì, cập nhật và mở rộng phát
triển. Các mẫu thiết kế giúp chúng ta
giải quyết được những vấn đề này. Ý tưởng này
như sau: Chúng ta sẽ lưu và tham chiếu tới
các giải pháp đã được thiết kế và sẽ sử dụng lại
chúng trong các tình huống tương tự.
Trong công nghệ phần mềm, một mẫu thiết kế
(design pattern) là một giải pháp tổng thể cho
*
Tel: 0915 564249; Email: nmductn@yahoo.com
các vấn đề chung trong thiết kế phần mềm.
Một mẫu thiết kế không phải là một thiết kế
hoàn thiện để mà có thể được chuyển đổi trực
tiếp thành mã, nó chỉ là một khung sườn mô
tả cách giải quyết một vấn đề mà có thể được
dùng lại trong nhiều tình huống khác nhau.
Các mẫu thiết kế hướng đối tượng thường cho
thấy mối quan hệ và sự tương tác giữa các lớp
hay các đối tượng, mà không cần chỉ rõ các
lớp hay đối tượng của từng ứng dụng cụ thể.
Các mẫu thiết kế có thể giúp tăng tốc quá
trình phát triển phần mềm bằng cách cung cấp
các mẫu hình phát triển đã được chứng thực
và kiểm chứng. Nó cung cấp các giải pháp
chung, được viết tài liệu dưới một định dạng
mà không gắn liền với một vấn đề cụ thể nào.
Các mẫu thiết kế cho phép các nhà phát triển
phần mềm giao tiếp với nhau bằng cách dùng
các tên dễ hiểu được dùng rộng rãi để đặt cho
các tương tác của phần mềm [1, 5].
Trong bài báo này chúng tôi sẽ đề xuất việc
xây dựng và thiết kế một mô hình hệ thống
truy xuất cơ sở dữ liệu theo kiến trúc phân
tầng, dựa trên mẫu thiết kế Template Method
mà E. Gamma và các cộng sự đã đề xuất, để
xử lý dữ liệu cho các bài toán liên quan nhiều
đến việc truy xuất các thông tin với cơ sở dữ
liệu. Mục đích các công việc của chúng tôi ở
đây là để có một cái nhìn sâu sắc hơn một
Nitro PDF Software
100 Portable Document Lane
Wonderland
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
32
số mẫu thiết kế được có thể được thực hiện
trong C#, và tìm hiểu xem các tính năng mới
của ngôn ngữ trong thực tế, làm cho nó dễ
dàng hơn trong việc thiết kế phần mềm hướng
đối tượng.
Sau phần giới thiệu, phần 2 sẽ xem xét mẫu
thiết kế Template Method do E. Gamma và
cộng sự đã đề xuất; Phần 3 là một đề xuất mới
về áp dụng mẫu Template Method để xây
dựng và thiết kế một hệ truy xuất cơ sở dữ
liệu theo kiến trúc phân tầng, một số thảo luận
và nhận xét về các vấn đề được quan tâm;
Cuối cùng phần 4 sẽ bao gồm một số kết luận
và công việc tương lai.
MẪU TEMPLATE METHOD
Khái niệm: Mẫu thiết kế Template Method
định nghĩa một bộ khung của một thuật toán
trong một chức năng, chuyển giao việc thực
hiện nó cho các lớp con. Mẫu Template
Method cho phép lớp con định nghĩa lại cách
thực hiện của một thuật toán, mà không phải
thay đổi cấu trúc thuật toán.
Cấu trúc: Cấu trúc của mẫu thiết kế
Template Method được mô tả bởi lược đồ
UML như trên hình 1 [1].
Trong đó:
Hình 1. Cấu trúc của mẫu thiết kế Template
Method [1]
Abstract Class:
- Định nghĩa các thao tác nguyên thủy trừu
tượng, các thao tác này định nghĩa các lớp
con cụ thể để thực hiện từng bước trong một
giải thuật.
- Cài đặt một Template Method xác định
khung sườn của một giải thuật. Template
Method này gọi các thao tác nguyên thủy
cũng như các thao tác được định nghĩa trong
AbstractClass hoặc một số đối tượng khác.
Concrete Class:
Thực thi các thao tác nguyên thủy để thực
hiện các bước đã chỉ ra trong các lớp con của
giải thuật.
Sử dụng: Mẫu Template Method thường
được sử dụng khi:
- Cần phải xác định thứ tự của các thuật toán
và chuyển cho các lớp con thực thi các hành
vi chung của thuật toán.
- Tránh sự trùng lặp về mã trình do những
hành vi chung đã được cài đặt ở lớp cha, các
lớp con kế thừa và sử dụng những phương
thức này, chỉ cần cài đặt lại các hành vi riêng
của chúng.
Thuận lợi, hạn chế khi sử dụng mẫu
Template Method
- Giúp người dùng tái sử dụng những đoạn
mã chung của các lớp con.
- Mẫu này thường được sử dụng trong các lớp
thư viện dùng để gọi các hàm. Đó là những
hàm có sẵn trong các thư viện cho phép người
sử dụng kế thừa và có thể cài đặt lại
(override).
Cài đặt
Mã trình khung cơ bản của mẫu Template
Method có thể được cài đặt trong ngôn ngữ
C# như sau:
abstract class Operations
{
public abstract void Operation1();
public virtual void Operation2(){ }
public void Run()
{
Operation1();
Operation2();
}
}
class ConcreteA : Operations
{
public override void Operation1()
{
Console.WriteLine("ConcreteA: Op1");
}
public override void Operation2()
Nitro PDF Software
100 Portable Document Lane
Wonderland
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
33
{
Console.WriteLine("ConcreteA: Op2");
}
}
class ConcreteB : Operations
{
public override void Operation1()
{
Console.WriteLine("ConcreteB: Op1");
}
public override void Operation2()
{
Console.WriteLine("ConcreteB: Op2");
}
}
class Services
{
public void TemlateMethod()
{
Operations o1 = new ConcreteA();
o1.Run();
Operations o2 = new ConcreteB();
o2.Run();
}
}
Nhận xét
Operations là lớp cơ sở trừu tượng, trong nó
khai báo các phương thức Operation1 và
Operation2 là trừu tượng hoặc ảo, nội dung
của chúng có thể được định nghĩa hoặc không
cần; Các lớp con ConcreteA và ConcreteB kế
thừa lớp Operations, trong 2 lớp con này sẽ
cài đặt lại các phương thức của lớp cha
Operations tùy thuộc vào yêu cầu cụ thể của
bài toán cần giải quyết; Lớp Services sẽ cung
cấp các dịch vụ sử dụng các phương thức của
các lớp Operations, ConcreteA hoặc
ConcreteB.
Đọan mã trình trên là một cách cài đặt mẫu
thiết kế Template Method. Tùy theo ngữ cảnh
thực tế mà có thể cài đặt mẫu khác trên, như
có thể dùng lớp trừu tượng hay giao diện
(interface), các phương thức có thể là ảo hay
trừu tượng... nhưng phải bảo đảm kiến trúc
của mẫu. Trong phần sau chúng tôi trình bày
một đề xuất áp dụng mẫu thiết kế Template
Method cho việc xử lý dữ liệu với các bài
toán thực tế.
ÁP DỤNG MẪU TEMPLATE METHOD
TRONG XỬ LÝ DỮ LIỆU
Đặt vấn đề
Trong phần này chúng ta sẽ tìm hiểu về ứng
dụng của mẫu Template Method trong việc
xử lý với một cơ sở dữ liệu đã cho. Bài toán
được đặt ra như sau: Một hệ thống quản lý
điểm cho các sinh viên trong một trường đại
học, cần phải truy cập tới các dữ liệu được
xây dựng bởi hệ quản trị SQL Serve trong
một máy chủ (file server) để thực hiện các
yêu cầu cần phải giải quyết như: Cập nhật các
thông tin với máy chủ, kết xuất thông tin ra
cho khách hàng, xử lý tính toán các yêu cầu
của hệ thống... Vấn đề đặt ra là tổ chức các
hoạt động của hệ thống sao cho đảm bảo được
các yêu cầu của hệ thống, thuận tiện cho
người dùng, dễ dàng cho bảo trì phát triển hệ
thống...
Với bài toán đặt ra như trên đã có nhiều giải
pháp thực hiện trong thực tế. Ở đây chúng tôi
đề xuất một giải pháp như sau: Sử dụng các
mẫu thiết kế trong lập trình hướng đối tượng
để giải quyết, cụ thể là mẫu thiết kế Template
Method kết hợp với kiến trúc phân tầng hệ
thống, các công việc xử lý được thực hiện
bằng ngôn ngữ C# trên nền tảng của công
nghệ .NET [3, 5].
Chúng tôi lựa chọn phương pháp giải quyết
này với các lý do sau: Dữ liệu của hệ thống đã
được xây bởi hệ quản trị cơ sở dữ liệu SQL
Server; Ngôn ngữ C# của hãng Microsoft là
một một ngôn ngữ lập trình hướng đối tượng
mạnh, hỗ trợ nhiều cho xử lý dữ liệu trong
SQL; Công nghệ.NET vẫn đang phát triển
tốt... [2, 4, 9].
Kiến trúc của hệ thống được xây dựng theo mô
hình phân tầng như trên hình vẽ 2. Trong đó:
Data Source là nguồn dữ liệu có thể được sử
dụng để tạo ra cơ sở dữ liệu, như có thể các là
hệ quản trị cơ sở dữ liệu SQL Server, Oracle,
DB2, Access...
Data Access là tầng truy xuất dữ liệu, nó sử
dụng các đối tượng như hệ quản trị cơ sở dữ
liệu để làm việc với nguồn dữ liệu Data
Source. Các lớp trong tầng này thường chứa
Nitro PDF Software
100 Portable Document Lane
Wonderland
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
34
những phương thức chung nhất để xử lý kết
nối với cơ sở dữ liệu, thực thi các câu lệnh
truy vấn...
Presentation
Business Logic
Data Access
Data Source
Hình 2: Mô hình nhiều tầng của hệ thống
Business Logic là tầng nghiệp vụ logic, tầng
này có các lớp chứa các phương thức xử lý dữ
liệu, các đối tượng ở tầng này tương tác với
các tầng Data Access và Presentation. Tầng
Business Logic thực hiện các câu lệnh truy
vấn dữ liệu viết trong các lớp của tầng này,
hoặc thực thi các thủ tục lưu trữ (Strore
Procedure), các hàm ở trong tầng nguồn dữ
liệu Data Source... để thực hiện các yêu cầu
nghiệp vụ của bài toán.
Presentation là tầng trình diễn, nó tạo giao
diện cho người dùng giao tiếp thuận tiện với
tầng nghiệp vụ, các đối tượng thường được sử
dụng có thể là các Windows Form, WebForm,
các hộp thoại dùng chung, các điều khiển như
Menu, TextBox, Radio Option, Check...
Như vậy, ta đã có thể hình dung được các
chức năng chính của từng tầng khi thực hiện
hệ thống ứng dụng. Phần tiếp theo chúng tôi
sẽ trình bày cách thức giải quyết bài toán theo
mẫu thiết kế Template Method theo kiến trúc
phân tầng của hệ thống đã đề xuất ở trên.
Áp dụng mẫu thiết kế Template Method
giải quyết bài toán
Bài toán đặt ra ở đây chỉ giới hạn trong việc
cập nhất một số thông tin cho đối tượng sinh
viên, quá trình đăng ký môn học, cập nhật
điểm học tập và kết xuất một số thông tin
minh họa cho việc áp dụng mẫu thiết kế
Template Method, cho nên biểu đồ UML của
hệ thống được thiết kế theo mẫu này như trên
sơ đồ hình vẽ 3.
Mô hình của bài toán được chúng tôi thiết kế
trong môi trường tích hợp của C#.Net, trong đó:
DataQLDL là lớp trừu tượng, chứa các
trường connect là một trường kiểu string để
lưu địa chỉ của máy chủ chứa cơ sở dữ liệu
của hệ thống; dataSet có kiểu DataSet để thao
tác với các dữ liệu trong SQL; objconnect có
kiểu SqlConnection để tạo đối tượng kết nối
hệ thống tới máy chủ [4]. Lớp này có các
phương thức: CONNECT là phương thức ảo
có nhiệm vụ thực hiện việc kết nối tới máy
chủ chứa cơ sở dữ liệu; SELECT là phương
thức trừu tượng để lựa chọn một bảng dữ liệu
hay truy vấn trong cơ sở dữ liệu; PROCESS
là phương thức ảo để thực hiện một thao tác
xử lý dữ liệu theo yêu cầu, hai phương thức
SELECT và PROCESS sẽ được cài đặt lại
trong các lớp kế thừa tùy theo các cầu xử lý
cụ thể; DISCONNECT là phương thức ảo để
hủy bỏ kết nối, hủy bỏ đối tượng và giải
phóng bộ nhớ khi cần thiết; RUN là phương
thức thực hiện các hàm thành phần trong lớp
DataQLDL theo mẫu thiết kế Template
Method.
Phương thức CONNECT được cài đặt như sau:
public virtual void CONNECT()
{
connect = @"Data Source = DATASP;
Initial Catalog = DB2015; Integrated
Security = True";
objconnect = new SqlConnection(connect);
objconnect.Open();
}
Trong đó DATASP là tên (địa chỉ) của máy
chủ chứa cơ sở dữ liệu DB2015 được xây
dựng bằng SQL Server.
Phương thức DISCONNECT được cài đặt
như sau:
public virtual void DISCONNECT()
Nitro PDF Software
100 Portable Document Lane
Wonderland
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
35
{
connect = "";
objconnect.Close();
objconnect.Dispose();
objconnect = null;
}
Phương thức RUN được cài đặt như sau:
public void RUN(DataGridView dataview)
{
CONNECT();
SELECT();
PROCESS(dataview);
DISCONNECT();
}
Hình 3: Biểu đồ UML của mô hình hệ thống
Nitro PDF Software
100 Portable Document Lane
Wonderland
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
36
SINHVIEN là lớp kế thừa của lớp
DataQLDL, thực hiện việc cài đặt lại (ghi đè)
các phương thức SELECT và PROCESS của
lớp cơ sở DataQLDL, để xử lý dữ liệu cho
các đối tượng cần xử lý như vào-ra dữ liệu
trong các bảng, cập nhật, hủy bỏ... đối tượng ở
đây là các sinh viên. Lớp SINHVIEN cũng có
thể được bổ sung các trường và một số phương
thức cần thiết để đáp ứng các yêu cầu mới.
DANGKY_MONHOC là lớp kế thừa của
lớp DataQLDL, thực hiện việc cài đặt lại các
phương thức SELECT và PROCESS của lớp
cơ sở DataQLDL, để xử lý dữ liệu cho các đối
tượng cần xử lý như vào-ra dữ liệu trong các
bảng, cập nhật, hủy bỏ... phục vụ cho việc
đăng ký các môn học của các sinh viên. Lớp
này cũng có thể được bổ sung các trường và
một số phương thức cần thiết để đáp ứng các
công việc.
CAPNHAT_DIEM là lớp kế thừa của lớp
DataQLDL, thực hiện việc ghi đè các phương
thức SELECT và PROCESS của lớp cơ sở
DataQLDL, để xử lý dữ liệu cho các đối
tượng cần xử lý như vào-ra dữ liệu trong các
bảng, cập nhật, hủy bỏ... phục vụ cho việc cập
nhật điểm thành phần, điểm thi các môn học,
tính toán xử lý điểm trung bình chung của các
môn học, xếp loại học tập theo điểm trung
bình... Lớp CAPNHAT_DIEM cũng có thể
được bổ sung các trường và một số phương
thức cần thiết để đáp ứng các yêu cầu xử lý...
FormSinhVien là lớp kế thừa lớp Form trong
hệ thống ngôn ngữ C#, lớp này liên kết với
lớp SINHVIEN, có nhiệm vụ thực hiện các
dịch vụ cho lớp SINHVIEN, giao tiếp với
người dùng thông qua các đối tượng điều
khiển thuận tiện của ngôn ngữ C#. Lớp này
đóng vai trò như lớp biên giao tiếp giữa người
dùng và các lớp hệ thống [6]. Một số phương
thức liên kết với các lớp ở các tầng khác để
xử lý dữ liệu ở trong lớp này có thể cài đặt
theo mẫu Template Method như sau:
private void Load_DataSV()
{
DataQLDL dataQLDL = new
SINHVIEN();
dataQLDL.RUN(DataGridView);
}
private void btnThemMoi_Click(object
sender, EventArgs e)
{
DataQLDL dtq = new SINHVIEN();
dtq.CONNECT();
...
...
}
FormDangKyMonHoc là lớp kế thừa lớp
Form trong hệ thống ngôn ngữ C#, lớp này
liên kết với lớp DANGKY_MONHOC, có
nhiêm vụ thực hiện các dịch vụ cho lớp
DANGKY_MONHOC, giao tiếp với người
dùng thông qua các đối tượng điều khiển
thuận tiện của ngôn ngữ C#. Lớp này đóng
vai trò như lớp biên giao tiếp giữa người dùng
và hệ thống. Một số phương thức xử lý trong
lớp này được cài đặt tương tự như trong lớp
FormSinhVien.
FormCapNhatDiem, FormNhapDiemThi,
FormNhapDiemTPhan là các lớp kế thừa
lớp Form trong hệ thống ngôn ngữ C#, các
lớp này liên kết với lớp CAPNHAT_DIEM,
có nhiêm vụ thực hiện các dịch vụ cho lớp
CAPNHAT_DIEM, như là nhập điểm thành
phần, nhập điểm thi, sửa chữa điểm các môn
học khi cần thiết... Các lớp này giao tiếp với
người dùng thông qua các đối tượng điều
khiển của ngôn ngữ C#. Chúng đóng vai trò
như lớp biên giao tiếp giữa người dùng và hệ
thống Một số phương thức xử lý trong các
lớp này được cài đặt tương tự như trong lớp
FormSinhVien.
FormMain là lớp kế thừa lớp Form, liên kết
với các lớp FormSinhVien,
FormDangKyMonHoc, FormCapNhatDiem,
FormNhapDiemThi, FormNhapDiemTPhan.
Đó là lớp chính của hệ thống, nó gọi các lớp
biên khác để thực hiện các yêu cầu để xử lý
các công việc theo yêu cầu của người dùng
thông các thực đơn thuận tiện.
Trong sơ đồ của hình 3 trên, lớp DataQLDL
nằm trong tầng Data Access; các lớp
SINHVIEN, DANGKY_MONHOC và
CAPNHAT_DIEM thuộc tầng Business
Nitro PDF Software
100 Portable Document Lane
Wonderland
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
37
Logic; các lớp FormSinhVien,
FormDangKyMonHoc, FormCapNhatDiem,
FormNhapDiemThi, FormNhapDiemTPhan
và FormMain ở trong tầng Presentation.
Nhận xét
Một mẫu thiết kế mô tả một tập hợp của các
lớp tương tác cung cấp trong khuôn khổ cho
một giải pháp của một vấn đề tổng quát trong
một ngữ cảnh hoặc môi trường cụ thể. Nói
cách khác, một mẫu cho thấy một giải pháp
cho một vấn đề cụ thể trong phát triển phần
mềm hướng đối tượng.
C#.NET mang lại nhiều lợi ích, trong đó có
thể dễ dàng sử dụng mô hình đối tượng, cơ
chế thu gom rác tự động làm sạch tài nguyên,
và các thư viện đến nay được cải thiện bao
gồm nhiều lĩnh vực khác nhau, từ hỗ trợ giao
diện đồ họa Windows để truy cập dữ liệu tới
việc tạo ra các trang web, .NET đảm bảo đủ
thông tin được bao gồm trong các tập tin thư
viện biên dịch và các lớp của bạn có thể được
thừa hưởng và được sử dụng tính năng mà
.NET cung cấp. Trong [7, 8], chúng tôi đã
thiết kế và cài đặt một số bài toán theo các
mẫu thiết kế bằng C#, đã cho thấy những lợi
ích thiết thực của các mẫu thiết kế.
Hệ thống ứng dụng mà chúng tôi xây dựng ở
đây, được thiết kế theo các nguyên lý hướng
đối tượng dựa tên mẫu Template Method và
cài đặt bằng ngôn ngữ C#, bước đầu thử
nghiệm đã cho kết quả đúng theo các yêu cầu.
Hệ thống có các đặc điểm:
- Xây dựng theo các kỹ thuật của lập trình
hướng đối tượng, tuân theo mẫu thiết kế
Template Method. Bảo đảm các nguyên lý
thiết kế hướng đối tượng.
- Kiến trúc của hệ thống theo mô hình phân
tầng, mỗi tầng thực hiện các chức năng riêng
biệt, nhưng lại tương tác với nhau một cách
hài hòa, thể hiện tính rõ ràng khi xây dựng,
bảo trì, phát triển mở rộng sau này...
- Có thể nâng cấp dễ dàng qua các phiên bản
của môi trường phát triển, cũng như tính khoa
học và hợp lý của mô hình khi xây dựng ứng
dụng liên quan đến cơ sở dữ liệu nói riêng và
phần mềm nói chung.
KẾT LUẬN
Ngôn ngữ hướng đối tượng mới C# của hãng
Microsoft có ảnh hưởng nhiều từ các ngôn
ngữ Java và C++. Tuy nhiên có nhiều tính
năng mới và hữu hiệu đã được bổ sung để
đơn giản hóa cho quá trình xây dựng và thiết
kế các hệ thống hướng đối tượng.
Hệ thống truy xuất dữ liệu do chúng tôi xây
dựng và thiết kế ở đây dựa trên cơ sở của mẫu
thiết kế Template Method trong lập trình
hướng đối tượng, kết hợp với mô hình kiến
trúc của hệ thống nhiều tầng. Hệ thống được
cài đặt bằng ngôn ngữ C#, đã được chạy thử
nghiệm, bảo đảm đúng các yêu cầu của bài
toán đặt ra, thuận tiện cho công việc bảo trì và
mở rộng phát triển.
Trong tương lai chúng tôi sẽ tiếp tục mở rộng
và cải tiến hệ thống xử lý cho các bài toán
khác, kết hợp với các mẫu thiết kế khác, tối
ưu các lớp và các phương thức trong hệ thống
để nâng cao tính hiệu quả và các khả năng tái sử
dụng... Nghiên cứu về việc làm mịn các mẫu
thiết kế. Áp dụng các mẫu và kết hợp chúng để
giải quyết các bài toán trong thực tiễn.
TÀI LIỆU THAM KHẢO
1. Gamma E., et. Al (2003), Elements of Reusable
Object-Oriented Software, Addison-Wesley. The
PDF conversion was made in February 2003.
2. Jason Price (2004), Mastering C# Database
Programming, Wiley.com/WileyCDA/...
3. Judith Bishop (2008), C# 3.0 Design Patterns,
O’Reilly.
4. MSDN (2010), C# Language specification,
Microsoft Corporation.
5. Sherif M. Yacoub, H.H. Ammar (2003), Pattern
-Oriented Analysis and Design: Composing Patterns
to Design Software Systems, Addison Wesley.
6. Đặng Văn Đức (2002), Phân tích thiết kế hướng
đối tượng bằng UML, Nhà xuất bản Giáo dục.
7. Nguyen Manh Duc (2012), “Building some
design patterns in C#”, Journal of science and
technology, Thainguyen University, volume 90
(02), p. 77-86.
8. Nguyễn Mạnh Đức (2014), “Ứng dụng mẫu
thiết kế xây dựng mô hình giải một số bài toán hồi
quy”, Tạp chí Khoa học và Công nghệ, Đại học
Thái Nguyên, tập 122, số 08, tr. 129-135.
9. Nguyễn Văn Lân, Phương Lan (2009), Lập
trình cơ sở dữ liệu với C#-Mô hình nhiều tầng,
Nhà xuất bản Lao động xã hội.
Nitro PDF Software
100 Portable Document Lane
Wonderland
Nguyễn Mạnh Đức Tạp chí KHOA HỌC & CÔNG NGHỆ 135(05): 31 - 38
38
SUMMARY
TEMPLATE MMETHOD DESIGN PATTERN
AND APPLICATIONS IN DATA PROCESSING
Nguyen Manh Duc
*
College of Education - TNU
In software engineering, the design is a total solutions for common problems in software design.
Profound idea of the design patterns is good to save the solution of object-oriented design and re-
use them to solve the same problems. In this paper we will consider the Template Method design
pattern by E. Gamma et al have proposed applying this model to build and design an system access
to a database on a server, the model of multi-tier system to perform data processing tasks in
accordance with the requirements of the problem posed in practice. From there take a deeper look
at some of the designs can be done in C #, learn the new features of the language in fact make it
easier and more efficient software design object- oriented.
Keywords: Design pattern, Template Method pattern, abstract class, interface, abstract method,
virtual method, override, multi-tiered system, Unified Modeling Language
Ngày nhận bài:15/01/2015; Ngày phản biện:22/01/2015; Ngày duyệt đăng: 31/5/2015
Phản biện khoa học: TS. Vũ Vinh Quang – Trường Đại học Công nghệ Thông tin & Truyền thông - ĐHTN
*
Tel: 0915 564249; Email: nmductn@yahoo.com
Nitro PDF Software
100 Portable Document Lane
Wonderland
Các file đính kèm theo tài liệu này:
- brief_51677_55527_1542016103524file5_7232_2046711.pdf