seminar prototype pattern

20
LOGO PROTOTYPE PATTERN Nhóm 04: Trần Thị Huyền Hoàng Đình Đồng Võ Công Tâm Phạm Thị Thanh Thuý www.tamnhinso.info 1

Upload: daniel-vo

Post on 11-Mar-2015

134 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Seminar Prototype Pattern

1

LOGO

PROTOTYPE PATTERN

Nhóm 04:Trần Thị HuyềnHoàng Đình ĐồngVõ Công TâmPhạm Thị Thanh Thuý

www.tamnhinso.info

Page 2: Seminar Prototype Pattern

NỘI DUNG

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC 2

DEMO

Ưu điểm và hạn chế

Các tình huống áp dụng

Cấu Trúc tổng quát

Mục đích – ý nghĩa – tính chất

Định nghĩa

Page 3: Seminar Prototype Pattern

3

ĐỊNH NGHĨA

Thuộc nhóm Creational Patterns. Prototype là mẫu thiết kế chỉ định ra một đối

tượng đặc biệt để khởi tạo, nó sử dụng một thể nghiệm sơ khai rồi sau đó sao chép ra các đối tượng khác từ mẫu đối tượng này.

Dùng để khởi tạo một đối tượng bằng cách copy một đối tượng khác đã tồn tại (gọi là prototype - nguyên mẫu).

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 4: Seminar Prototype Pattern

4

MỤC ĐÍCH – Ý NGHĨA

Dùng khi cần tạo ra một đối tượng theo một khuôn mẫu của đối tượng đã có.

Khi việc tạo một thể hiện (instance) của một class là rất tốn thời gian hoặc phức tạp.

Cần tạo ra những class chỉ khác biệt trong kiểu xử lý, dùng để giảm thiểu số lượng các subclass bằng cách cloning một nguyên mẫu (prototype).

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 5: Seminar Prototype Pattern

5

MỤC ĐÍCH - Ý NGHĨA (2)

Việc tạo lập đối tượng mới sẽ dựa trên đối tượng mẫu, không sử dụng toán tử new hoặc constructor … được cung cấp bởi ngôn ngữ lập trình.

Do chúng ta không biết được thông tin nội tại chi tiết bên trong đối tượng:

• Đối tượng có thể đã che dấu • Chỉ cung cấp ra bên ngoài một lượng thông tin giới hạn• Không thể dùng toán tử new và sao chép những dữ liệu (vốn

không đầy đủ) cho một đối tượng mới.

Cách tốt nhất là để cho chính đối tượng “mẫu” tự xác định thông tin và dữ liệu sao chép.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 6: Seminar Prototype Pattern

6

TÍNH CHẤT

Tần suất sử dụng thấp hoặc trung bình

Đặc trưng chủ yếu của prototype là dùng phương thức clone() để sao chép đối tượng.

Có liên quan chặc chẽ với mẫu Abstract Factory

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 7: Seminar Prototype Pattern

7www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 8: Seminar Prototype Pattern

8

CẤU TRÚC

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 9: Seminar Prototype Pattern

9

CẤU TRÚC (2)

Prototype: Cung cấp interface để copy đối tượng. Cài đặt phương thức Clone() là phương thức

copy bản thân đối tượng đã tồn tại. Client: Tạo mới đối tượng bằng cách yêu cầu một đối tượng

đã có (prototype) copy chính nó.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 10: Seminar Prototype Pattern

10

CẤU TRÚC (3)

ConcreatePrototype: Là lớp kế thừa lớp Prototype. Implement interface được cung cấp bởi

Prototype để copy chính bản thân nó. Thể hiện cụ thể phương thức clone().

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 11: Seminar Prototype Pattern

11

TÌNH HUỐNG ÁP DỤNG

Mẫu Prototype được sử dụng khi hệ thống cần độc lập với các đối tượng mà nó sinh ra và:

Khi lớp cần dùng để sinh ra đối tượng được xác định tại thời điểm chương trình chạy hoặc:

Tránh trường hợp xây dựng các phần tử khởi tạo đối tượng ngang bằng với số lượng kiểu đối tượng bổ sung dự định tạo ra hoặc:

Khi các đối tượng của cùng một class có ít sự khác biệt.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 12: Seminar Prototype Pattern

12

HỆ QUẢ

Thêm và loại bỏ những sản phẩm vào thời gian chạy.

Xác định các đối tượng mới bằng cách thay đổi các giá trị.

Xác định các đối tượng mới bằng cách thay đổi cấu trúc.

Giảm subclassing. Định hình một ứng dụng với những lớp động.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 13: Seminar Prototype Pattern

13

ƯU ĐIỂM

Prototype giúp ẩn đi những lớp con rời rạc từ phía client: làm giảm số lớp con mà client cần biết.

Thêm và loại bỏ concreate lúc run-time : Prototype hợp nhất quá trình khởi tạo 1 object mới vào trong hệ thống đơn giản chỉ bằng cách đăng kí một thực thể nguyên mẫu với client.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 14: Seminar Prototype Pattern

14

ƯU ĐIỂM (2)

Khởi tạo object mới bằng cách thay đổi một vài attribute của object : Một object linh động sẽ để cho chúng ta tự define một hành động nào đó thông qua sự kết hợp với một object hơn là define một class mới. Client có thể hiện một tác động khác bằng cách ủy quyền cho lớp prototype.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 15: Seminar Prototype Pattern

15

ƯU ĐIỂM (3)

Khởi tạo object mới bằng cách thay đổi cấu trúc : Rất nhiều ứng dụng xây dựng hệ thống từ nhiều phần và các phần con. Các phần con lại khởi tạo từ nhiều phần con khác nghĩa là các phần đó có thể được khởi tạo từ việc copy một nguyên mẫu từ một “cấu trúc” khác.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 16: Seminar Prototype Pattern

16

ƯU ĐIỂM (3)

Khởi tạo object mới bằng cách thay đổi cấu trúc : Rất nhiều ứng dụng xây dựng hệ thống từ nhiều phần và các phần con. Các phần con lại khởi tạo từ nhiều phần con khác nghĩa là các phần đó có thể được khởi tạo từ việc copy một nguyên mẫu từ một “cấu trúc” khác.

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 17: Seminar Prototype Pattern

17

HẠN CHẾ

Giảm việc phân lớp: Đôi khi hệ thống quá phức tạp vì có quá nhiều class, và cây thừa kế của lớp khởi tạo có quá nhiều lớp song song cùng mức. Prototype pattern rõ ràng làm giảm số lớp và sự phức tạp của cây thừa kế (class hierarchy)

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 18: Seminar Prototype Pattern

18

VÍ DỤ

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

Page 19: Seminar Prototype Pattern

LOGO

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

19

Page 20: Seminar Prototype Pattern

LOGO

www.tamnhinso.info Faculty for High Quality Training - The University of Technical Education HCMC

20