Mẫu thiết kế template method và ứng dụng trong xử lý dữ liệu - Nguyễn Mạnh Đức

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.

pdf8 trang | Chia sẻ: thucuc2301 | Lượt xem: 692 | Lượt tải: 0download
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:

  • pdfbrief_51677_55527_1542016103524file5_7232_2046711.pdf