1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môn phương pháp lập trình hướng đối tượng đề tài ǀ DESIGN PATTERN

22 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 556,64 KB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN NHÓM 3V1T OOP SEMINAR ǀ Đề tài ǀ DESIGN PATTERN ǀ Giáo viên hướng dẫn ǀ Ts Nguyễn Minh Huy ThS Nguyễn Duy Quang ThS Hồ Tuấn Thanh Môn: Phương pháp lập trình hướng đối tượng Thành phố Hồ Chí Minh - 2021 MỤC LỤC MỤC LỤC _2 BẢNG PHÂN CÔNG PROTOTYPE PATTERN _4 Giới thiệu Prototype Pattern 1.1 Đặt vấn đề (Problem) _4 1.2 Giải pháp cho vấn đề (Solution) _4 1.3 Ví dụ thực tiễn (Real-word Analogy) _4 Cấu trúc (Structure) UML Diagram _5 2.1 Cấu trúc (Structure) 2.2 UML Diagram _7 Triển khai lập trình 3.1 Mã giả (Pseudocode) _7 3.2 Cách triển khai (Implement) _10 Tổng kết _12 4.1 Tính ứng dụng Prototype Pattern _12 4.2 Ưu – nhược điểm (Pros - Cons) Prototype Pattern 13 BUILDER PATTERN _15 Giới thiệu Builder Pattern _15 Triển khai lập trình _15 2.1 Cách thức triển khai (implement) 15 2.2 Cài đặt builder pattern _15 Ưu - Nhược điểm (Pros - Cons) Builder Pattern _21 3.1 Ưu điểm 21 3.2 Nhược điểm: 21 NGUỒN THAM KHẢO _22 Thành phố Hồ Chí Minh - 2021 BẢNG PHÂN CƠNG STT MSSV HỌ TÊN CƠNG VIỆC PHẦN TRĂM ĐĨNG GĨP 42 20127643 Trương Gia Tiến  Giới thiệu builder pattern  Vẽ diagram builder pattern  44 46 47 20127664 20127669 20127671 Viết report Nguyễn Văn Việt Ngô Anh Vũ Phạm Quốc Vương Thành phố Hồ Chí Minh - 2021 cho PROTOTYPE PATTERN Giới thiệu Prototype Pattern 1.1 Đặt vấn đề (Problem) Bạn muốn chép đối tượng Cách mà bạn nghĩ tới tạo đối tượng thuộc lớp đó, chép thuộc tính từ đối tượng cần chép sang đối tượng Nhưng đối tượng có thuộc tính riêng tư khơng thể truy cập từ bên ngồi sao? Cịn vài vấn đề Vì bạn phải xác định rõ lớp đối tượng, chương trình bạn phụ thuộc hồn tồn vào lớp 1.2 Giải pháp cho vấn đề (Solution) Prototype Pattern giao việc chép cho đối tượng cần chép Pattern (khuôn mẫu) tạo giao diện cho đối tượng có phương thức chép Giao diện cho phép bạn chép đối tượng mà không phụ thuộc vào lớp đối tượng Vì giao diện cần phương thức chép Phương thức khởi tạo đối tượng thuộc lớp xác định đem tồn thuộc tính từ đối tượng cũ đối tượng Bạn hồn tồn chép thuộc tính riêng tư phần lớn ngơn ngữ lập trình cho phép đối tượng truy cập vào thuộc tính đó, miễn hai đối tượng thuộc lớp Một đối tượng có khả hỗ trợ chép gọi mẫu Phương thức hoạt động: bạn tạo vài đối tượng để làm mẫu, khai báo theo nhiều cách khác Khi bạn cần chép mẫu trên, cần chép mẫu 1.3 Ví dụ thực tiễn (Real-word Analogy) Vì mẫu cơng nghiệp khơng thể tự chép, ví dụ gần trình nguyên phân tế bào Tế bào gốc xem mẫu, trải qua nguyên phân, tạo tế bào Thành phố Hồ Chí Minh - 2021 Cấu trúc (Structure) UML Diagram 2.1 Cấu trúc (Structure) Prototype interface (giao diện chính) khai báo phương thức chép Thơng thường, phương thức chép Concrete Prototype class (lớp đối tượng mẫu) thực phương thức chép Ngoài phương thức chép ra, lớp thực số phương thức khác nâng cao Client (chương trình cho người sử dụng) có khả tạo đối tượng thuộc giao diện chép Thành phố Hồ Chí Minh - 2021 Prototype Registry (khối khởi tạo mẫu) cung cấp phương thức tiếp cận dễ dàng mẫu thường sử dụng Nó lưu trữ nhóm mẫu sẵn sàng chép Khối khởi tạo mẫu đơn giản sử dụng name -> prototype (tên -> mẫu) hash map (mảng băm) Tuy nhiên, bạn cần tiêu chuẩn để tìm kiếm tốt hơn, bạn thiết kế phiên hiệu Thành phố Hồ Chí Minh - 2021 2.2 UML Diagram Triển khai lập trình 3.1 Mã giả (Pseudocode) Trong ví dụ này, mẫu Nguyên mẫu cho phép tạo xác đối tượng hình học mà khơng cần ghép mã với lớp chúng Sao chép tập hợp đối tượng thuộc hệ thống phân cấp lớp Tất lớp hình dạng tuân theo giao diện, cung cấp phương pháp chép. Một lớp gọi phương thức chép lớp cha trước chép giá trị trường vào đối tượng kết Trong source code Ironman đại diện cho nguyên mẫu: ( Ngôn ngữ : C++) Thành phố Hồ Chí Minh - 2021 Thành phố Hồ Chí Minh - 2021 Thành phố Hồ Chí Minh - 2021 3.2 Cách triển khai (Implement) a) Tạo giao diện Nguyên mẫu khai báo phương thức Clone đó. Hoặc cần thêm giải pháp vào tất lớp hệ thống phân cấp lớp có, bạn có b) Phải xác định phương thức khởi tạo thay thế, chấp nhận đối tượng lớp làm đối số. Hàm tạo phải chép giá trị tất trường xác định lớp từ đối tượng truyền vào đối tượng tạo. Nếu bạn thay đổi lớp con, bạn phải gọi hàm tạo cha phép lớp cha xử lý việc chép trường riêng tư Nếu ngơn ngữ lập trình bạn khơng hỗ trợ nạp chồng phương thức, bạn xác định phương thức đặc biệt để chép liệu đối tượng. Hàm tạo nơi thuận tiện để làm điều cung cấp đối tượng kết sau bạn gọi new toán tử c) Phương thức nhân thường bao gồm dòng: chạy một new toán tử với phiên nguyên mẫu hàm tạo. Lưu ý lớp phải ghi đè rõ ràng phương thức nhân Thành phố Hồ Chí Minh - 2021 sử dụng tên lớp với new tốn tử. Nếu khơng, phương thức nhân tạo đối tượng lớp cha d) Theo tùy chọn, tạo sổ đăng ký nguyên mẫu tập trung để lưu trữ danh mục nguyên mẫu sử dụng thường xuyên Bạn triển khai sổ đăng ký dạng lớp nhà máy đặt vào lớp nguyên mẫu sở với phương thức tĩnh để tìm nạp nguyên mẫu. Phương pháp nên tìm kiếm ngun mẫu dựa tiêu chí tìm kiếm mà mã khách hàng chuyển đến phương thức. Tiêu chí thẻ chuỗi đơn giản tập hợp tham số tìm kiếm phức tạp. Sau tìm thấy ngun mẫu thích hợp, quan đăng ký chép trả lại cho máy khách Cuối cùng, thay lệnh gọi trực tiếp đến hàm tạo lớp lệnh gọi đến phương thức gốc sổ đăng ký nguyên mẫu Thành phố Hồ Chí Minh - 2021 Tổng kết 4.1 Tính ứng dụng Prototype Pattern a) Sử dụng mẫu Prototype mã bạn độc lập không phụ thuộc vào lớp đối tượng cụ thể mà bạn cần chép, tức là:  Khi mã bạn hoạt động với đối tượng chuyển cho bạn từ mã bên thứ thơng qua số gia diện / phương thức điều xả nhiều Các lớp cụ thể đối tượng không xác định bạn phụ thuộc vào chúng dù bạn muốn hay không  Mẫu Prototype cung cấp cho mã máy khách giao diện chung để làm việc với tất đối tượng hỗ trợ nhân bản. Giao diện làm cho mã máy khách độc lập với lớp cụ thể đối tượng mà chép b) Sử dụng mẫu bạn muốn giảm số lượng lớp khác cách chúng khởi tạo đối tượng tương ứng chúng (Tránh trùng lặp khơng cần thiết). Bất kì tạo lớp để tạo đối tượng với cấu hình cụ thể  Mẫu Prototype cho phép bạn sử dụng tập hợp đối tượng tạo sẵn, định cấu hình theo nhiều cách khác nhau, làm nguyên mẫu  Thay khởi tạo lớp phù hợp với số cấu hình, bạn cần tìm nguyên mẫu thích hợp chép c) Ngồi sử dụng mẫu Prototype :   Khi lớp khởi tạo định thời gian chạy   Để tránh xây dựng hệ thống phân cấp lớp nhà máy   Sẽ thuận tiện chép đối tượng tạo đối tượng 4.2 Ưu – nhược điểm (Pros - Cons) Prototype Pattern a) Ưu điểm:  Có thể sản xuất đối tượng phức tạp cách thuận tiện – Nguyên mẫu cho phép bạn chép đối tượng mẫu cách nhanh chóng mà khơng cần thơng qua bước khởi tạo  Thêm xóa sản phẩm thời gian chạy - Nguyên mẫu cho phép bạn kết hợp lớp sản phẩm cụ thể vào hệ thống cách đăng ký phiên nguyên mẫu với khách Thành phố Hồ Chí Minh - 2021 hàng. Điều linh hoạt chút so với mẫu sáng tạo khác, khách hàng cài đặt gỡ bỏ nguyên mẫu thời điểm chạy  Chỉ định đối tượng theo giá trị khác - Các hệ thống động cao cho phép bạn xác định hành vi thông qua thành phần đối tượng cách định giá trị cho biến đối tượng cách xác định lớp mới.   Chỉ định đối tượng theo cấu trúc khác - Nhiều ứng dụng xây dựng đối tượng từ phận phần con. Để thuận tiện, ứng dụng thường cho phép bạn khởi tạo cấu trúc phức tạp, người dùng xác định để sử dụng lặp lặp lại mạch cụ thể.   Giảm bớt phân lớp - Phương thức Nhà máy thường tạo hệ thống phân cấp lớp Người tạo song song với hệ thống phân cấp lớp sản phẩm. Mẫu Prototype cho phép bạn chép nguyên mẫu thay yêu cầu phương pháp gốc để tạo đối tượng mới. Do đó, bạn hồn tồn khơng cần phân cấp lớp Người sáng tạo.  Thành phố Hồ Chí Minh - 2021 b) Nhược điểm:  Quá mức cho dự án sử dụng đối tượng / khơng có trọng tâm việc mở rộng chuỗi nguyên mẫu.   Nó ẩn lớp sản phẩm cụ thể khỏi khách hàng  Mỗi lớp Nguyên mẫu phải triển khai hoạt động clone () khó, lớp xem xét tồn tại. Ngồi ra, việc triển khai clone () khó khăn bên chúng bao gồm đối tượng khơng hỗ trợ chép có tham chiếu tuần hồn Thành phố Hồ Chí Minh - 2021 BUILDER PATTERN Giới thiệu Builder Pattern Triển khai lập trình 4.3 Cách thức triển khai (implement) Mặc định, cách thức triển khai thông thường Builder pattern gồm có thành phần bản:  Builder: thành phần định nghĩa lớp trừu tượng (abstract class) để tạo nhiều phần đối tượng Product  ConcreateBuilder: thành phần triển khai, cụ thể hóa lớp trừu tượng cho để tạo thành phần tập hợp thành phần với Thành phần xác định nắm giữ thơng số đối tượng mà tạo Đồng thời cung cấp phương thức để trả đối tượng mà tạo trước  Product: thành phần viết đại diện cho đối tượng phức tạp phải tạo  Director: thành phần khởi tạo đối tượng Builder thực xếp trình tự xây dựng thành phần 4.4 Cài đặt builder pattern a) Xác Định rõ ràng thành phần bước chung cần thiết để xây dựng sản phẩm Ví dụ: Khi xây dựng máy bay cần có phận là: Thân, động bánh xe Một báy bay có nhiều động nhiều bánh xe Xây dựng lớp Body, Engine, Wheel lớp có thuộc tính khác thành phần lớp Plane Thành phố Hồ Chí Minh - 2021 b) Khai báo bước xây dựng phận lớp Builder- lớp Interface Thành phố Hồ Chí Minh - 2021 Trong lớp chứa hàm ảo có nhiệm vụ dẫn hướng để hàm xây dựng người dùng định Trong C++, sử dụng phương thức vitural để cài đặt Ví dụ: c) Tạo concrete builder class cho sản phẩm tiến hành cài đặt cho thành phần chúng Trong bước này, ta sử dụng kế thừa để trả đối tượng khác có nhiều thuộc tính chung Vì đối tườn khơng khai báo class Builder Ví dụ: Thành phần Engine Class Plane có nhiều loại JET Propeller : Ví dụ: Tạo Class AirBusBuiler Class BoeingBuilder Concrete Builder Class Thành phố Hồ Chí Minh - 2021 Class AirBusBuilder Thành phố Hồ Chí Minh - 2021 d) Tạo Class Director sử dụng hàm ảo Class Builder để xây dựng nên sản phẩm Ví dụ: Class Director nhận tham số từ trỏ builder để cấu trúc nên máy bay Declare in class Director Thành phố Hồ Chí Minh - 2021 e) Cài đặt hàm main Đầu tiên hàm main phải tạo đối tượng sản phẩm cuối sau tạo đối tượng director để thực hàm dựng cuối tạo Concrete Builder sản phẩm yêu cầu C++ tạo Concrete Builder trỏ dùng tốn tử new Vì cần sử dụng hàm ảo class Builder Sau truyền đối tượng Concrete Buidler vào Director Ở Concerte Builder truyền trực tiếp phương phác cấu trúc Director Sản phầm kết thu từ Director Thành phố Hồ Chí Minh - 2021 Ưu - Nhược điểm (Pros - Cons) Builder Pattern 5.1 Ưu điểm  Bạn xây dựng đối tượng theo bước, trì hỗn bước xây dựng chạy đệ quy bước  Bạn tái sử dụng lại tập bước xây dựng xây dựng hình thức khác đối tượng  Single Responsibility Principle (đơn nhiệm) mối class làm nhiêm vụ khác Trong builder design pattern, class builder chịu trách nhiệm nhận thuộc tính cách thụ động class director thực thu tập thuộc tính xây dựng đối tượng Bạn tách biệt code xây dựng phức tạp khỏi logic kinh doanh sản phẩm 5.2 Nhược điểm:  Độ phức tạp tổng thể mã code tăng lên phải tạo nhiều class Thành phố Hồ Chí Minh - 2021 NGUỒN THAM KHẢO Pericherla Suryateja startertutorials [Online] // patterns. - November 24, 2013. https://www.startertutorials.com/patterns/prototype-pattern.html refactoring.guru [Online] // PROTOTYPE. - https://refactoring.guru/design-patterns/prototype Saket Kumar; Pushpender007 geeksforgeeks.org [Online] // Prototype Design Pattern. September 22, 2021. - https://www.geeksforgeeks.org/prototype-design-pattern/ Thành phố Hồ Chí Minh - 2021 ... [Online] // patterns. - November 24, 2013. https://www.startertutorials.com/patterns/prototype -pattern. html refactoring.guru [Online] // PROTOTYPE. - https://refactoring.guru /design- patterns/prototype... Prototype Pattern _12 4.2 Ưu – nhược điểm (Pros - Cons) Prototype Pattern 13 BUILDER PATTERN _15 Giới thiệu Builder Pattern ... Pushpender007 geeksforgeeks.org [Online] // Prototype Design Pattern.  September 22, 2021. - https://www.geeksforgeeks.org/prototype -design- pattern/ Thành phố Hồ Chí Minh - 2021

Ngày đăng: 05/12/2021, 19:16

HÌNH ẢNH LIÊN QUAN

BẢNG PHÂN CÔNG - Môn phương pháp lập trình hướng đối tượng đề tài ǀ DESIGN PATTERN
BẢNG PHÂN CÔNG (Trang 3)
Trong ví dụ này, mẫu Nguyên mẫu cho phép tạo các bản sao chính xác của các đối tượng hình học mà không cần ghép mã với các lớp của chúng. - Môn phương pháp lập trình hướng đối tượng đề tài ǀ DESIGN PATTERN
rong ví dụ này, mẫu Nguyên mẫu cho phép tạo các bản sao chính xác của các đối tượng hình học mà không cần ghép mã với các lớp của chúng (Trang 7)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w