Danh mục

Bài giảng môn Lập trình hướng đối tượng: Chương 14 - TS. Nguyễn Văn Hiệp

Số trang: 15      Loại file: pdf      Dung lượng: 186.91 KB      Lượt xem: 10      Lượt tải: 0    
Jamona

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng "Các mẫu thiết kế phục vụ khởi tạo đối tượng (Creational Patterns)" cung cấp cho người học các kiến thức: Tổng quát vềnhóm mẫu “Creational”, mẫu Abstract Factory, mẫu Factory Method, mẫu Prototype, mẫu Builder, mẫu Singleton. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng môn Lập trình hướng đối tượng: Chương 14 - TS. Nguyễn Văn HiệpChương 14Các mẫu thiết kế phục vụ khởi tạo ₫ối tượng(Creational Patterns)14.1 Tổng quát về nhóm mẫu “Creational”14.2 Mẫu Abstract Factory14.3 Mẫu Factory Method14.4 Mẫu Prototype14.5 Mẫu Builder14.6 Mẫu Singleton14.7 Kết chươngKhoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 114.1 Tổng quát về nhóm mẫu “Creational”‰‰Đối tượng thường chứa nhiều thuộc tính dữ liệu và nhiều thamkhảo ₫ến các ₫ối tượng khác. Đoạn code khởi tạo giá trị cho cácthuộc tính và tham khảo này phụ thuộc hoàn toàn vào sự hiệnthực cụ thể của ₫ối tượng. Chúng ta cần tách ₫oạn code này khỏicode của client sử dụng ₫ối tượng.Thường client muốn tạo ₫ối tượng phức hợp mà không cần quantâm ₫ến các thông tin cụ thể chi tiết sau :ƒ Đối tượng phức hợp thuộc class cụ thể nào.ƒ Nó chứa các loại ₫ối tượng con nào, số lượng ra sao.ƒ Mối quan hệ giữa các ₫ối tượng con như thế nào.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 214.1 Tổng quát về nhóm mẫu “Creational”‰‰Các mẫu thiết kế “Creational” sẽ giúp code client linh ₫ộng về mặtkhởi tạo, quản lý và sử dụng ₫ối tượng. Chúng có thể cho phépclient chủ ₫ộng trong việc xác ₫ịnh ₫ối tượng nào ₫ược tạo ra, aitạo ra ₫ối tượng ₫ó, cách thức và thời ₫iểm khởi tạo ₫ối tượng ₫ó.Đặc ₫iểm nổi bật của các mẫu thiết kế “creational” là ₫oạn codeclient cần sử dụng ₫ối tượng không trực tiếp sinh ra ₫ối tượng mànhờ các phần tử trung gian ₫ể tăng ₫ộ linh ₫ộng, tối thiểu hóa sựphụ thuộc vào các class ₫ối tượng cụ thể.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 314.2 Mẫu Abstract FactoryMục tiêu :ƒCung cấp cho Client 1 interface gồm tập tác vụ khởi tạo các₫ối tượng ₫ược dùng trong Client nhưng che dấu mọi chi tiết về₫ối tượng ₫ược tạo ra, thí dụ như thuộc class cụ thể nào…ƒMột trong các mục tiêu của việc viết code ứng dụng là phải cótính tổng quát cao và ₫ộ ₫ộc lập cao với chi tiết hiện thực củacác ₫ối tượng mà nó dùng. Một trong các phương án ₫ể ₫ạt₫ược mục tiêu trên là không dùng lệnh new ₫ể tạo ra ₫ối tượngcần dùng vì nếu dùng lệnh new thì phải xác ₫ịnh tên class cụthể và như vậy sẽ phụ thuộc vào class này. MẫuAbstractFactory sẽ giúp chúng ta tạo ₫ối tượng mà không cầnbiết tên class cụ thể ₫ược dùng.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 414.2 Mẫu Abstract FactoryThí dụ về việc dùng mẫu Abstract factory :ƒTa muốn viết chương trình GUI (dùng giao diện ₫ồ họa trực quan)có khả năng chạy trên nhiều platform khác nhau (chương trìnhmulti-platform). Mỗi platform có một họ các class miêu tả các ₫ốitượng giao diện phổ dụng như TextBox, Button,… Giả sử các ₫ốitượng giao diện cùng chức năng trên các platform khác nhau hỗtrợ cùng interface thống nhất (nếu không ta dùng mẫu Adapter ₫ểcó ₫ược kết quả này). Việc sử dụng cụ thể họ các class giao diệnnào chỉ biết khi chương trình bắt ₫ầu chạy. Để giải quyết vấn ₫ềtrên, cách tốt nhất là dùng mẫu AbstractFactory với lược ₫ồ classnhư sau :Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 514.2 Mẫu Abstract FactoryKhoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 614.2 Mẫu Abstract FactoryTa có thể xâydựng mẫuAbstractFactorytheo loại classpattern với lược₫ồ class như sau:Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 714.2 Mẫu Abstract FactoryCác phần tử tham gia :ƒIObjectA, IObjectB : interface thống nhất của các ₫ối tượng cùngchức năng trong các họ khác nhau.ƒIAbstractFactory : interface của ₫ối tượng chuyên tạo các ₫ốitượng dùm cho Client.ƒConcreteFactory1… : class hiện thực các tác vụ tạo ₫ối tượngtrong interface IAbstractFactory. Hệ thống có nhiềuConcreteFactory, mỗi ConcreteFactory sinh ra các ₫ối tượng cùnghọ, các họ ₫ối tượng do các ConcreteFactory tạo ra tương ₫ồngnhau về vai trò, về chức năng.Khoa Khoa học & Kỹ thuật Máy tínhTrường ĐH Bách Khoa Tp.HCM© 2010Môn : Lập trình hướng ₫ối tượngChương 14 : Các mẫu thiết kế phục vụ khởi tạo ₫ối tượngSlide 814.2 Mẫu Abstract FactoryCác phần tử tham gia (tt) :ƒObjectA, ObjectB : class hiện thực ₫ối tượng ₫ược tạo ra bởi classConcreteFactory tương ứng, nó hỗ trợ interface sử dụng tươngứng.ƒCl ...

Tài liệu được xem nhiều: