Báo cáo cuối kỳ môn Lập trình hướng đối tượng - Chủ đề: State design pattern - Bùi Thanh Duy

State design pattern  
Nhóm: thỏ trắng  
Thành viên:  
-Bùi Thanh Duy -1760291  
-Huỳnh Thanh Hải -1760300  
1. Design Patterns là gì?  
-Design patterns là một kỹ thuật trong lập trình hướng đối  
tượng, được các nhà nghiên cứu đúc kết và tạo ra các mẫu thiết kế  
chuẩn. Và design pattern không phải là một ngôn ngữ lập trình cụ thể  
nào cả, mà nó có thể sự dụng được trong hầu hết các ngôn lập trình có  
hỗ trợ OOP hiện nay.  
2. Tại sao nên sử dụng design patterns?  
-Design pattern giúp cho dự án của chúng ta dễ bảo trì, nâng cấp và  
mở rộng.  
-Hơn nữa do design pattern đã được các nhà nghiên cứu đúc kết ra  
nên khi sử dụng design pattern thì chúng ta sẽ hạn chế được các lỗi  
tiềm ẩn.  
-Và cuối cùng là khi sử dụng design pattern thì sẽ giúp code của  
chúng ta sẽ dễ đọc hơn. Điều này rất có lợi khi làm việc nhóm.  
3. State Design Patterns là gì?  
a) khái niệm:  
State design pattern là một trong những mẫu thiết kế hành vi.  
State design pattern được sử dụng khi một Object thay đổi  
hành vi của nó dựa trên trạng thái bên trong của nó. Nếu chúng  
ta phải thay đổi hành vi của đối tượng dựa trên trạng thái của  
nó. Trong State pattern , chúng ta tạo các đối tượng đại diện  
cho các trạng thái khác nhau và một đối tượng bối cảnh mà  
hành vi của chúng thay đổi khi các thay đổi đối tượng trạng thái  
của nó.  
b) ưu điểm:  
Giảm bớt rắc rối trong quá trình xử lý các sự kiện.  
Dễ dàng chỉnh sửa trong quá trình lập trình.  
c) một số ví dụ  
- đèn giao thông: cần quản lý 3 trạng thái màu của đèn xanh,đỏ vàng  
-quản lý cho thuê nhà: đợi người thuê nhà,nhận yêu cầu thuê,cho thuê  
vàhết nhà trống  
- atm: đã chèn thẻ và chưa chèn thẻ  
- state design pattern được sủ dụng rất nhiều trông việc quản lý trạng  
thái các đối tường trọng game hoặc úng dụng  
d) giải quết ví vụ đèn giao thông  
1) không dùng state design pattern  
-nhược điểm : mỗi 1 thao tác với state chúng ta cẩn phải dùng  
câu lệnh rẽ nhánh để kiểm tra state hiện tại của object rồi mới quyết  
định cần phải làm gì chính vì vậy nếu 1 đối tượng có nhiều state va  
nhiều thao tác thì sẽ cần rất nhiều câu lênh kiểm tra làm cho code khó  
đọc, khó hiểu va khó thay đổi về sau.  
- trong ví dụ ta có 3 state và 2 thao tác. Mỗi thao tác ta cần dùng câu  
lệnh swich với 3 case để xác đinh trang thái. Giả xử ta thêm 3 trạng  
thái, thì ta cần vào code từng thao tác r them3 case vào . khá rác rối!  
Tệ hơn đồng nghiệp của chúng ta không biết code mà ta viết thì sao  
bời vì mỗi người sẽ có cách viết khác nhau. Nhưng chúng ta viết code  
theo 1 mẫu(pattern) thì lại khác  
2) dùng state design pattern  
Mỗi 1 state sẽ là 1 object trong trường trình , khi có nhu cầu  
them state chỉ cần tạo them 1 đối tượng là được, việc chia nhỏ state ra  
từng object sẽ dễ dàng quản lý hơn.  
Đồng nghiep sẽ dễ dàng hiểu biết đuọc chúng ta viết thế nào  
- Như class diagram bên dưới nếu ta them 1 state cho đối tường,  
ví dụ pink thì ta cần làm: tạo 1 đối tường pink gần tương tự như  
các state kia. Them thuọc tính pink vào class Trafficlight. Đó là  
tất cả ta cần làm  
Class diagram  
Sourse code: đính kèm  
Bài tập state:  
Thiết kê state cho printer để thực hiện 2 thao tác: cancel(hủy in),  
handle(thuc hiện hành động nào đó  
Lời giải kham khảo:  
Bài tập flyweight  
Vẽ sơ đồ lớp trương trình lưu trử thông tin các máy bay có nhưng  
thông tin sau:  
-mỗi chiếc máy bay sẽ có một số trạng thái chung như Loại máy bay,  
khả năng ngồi, tốc độ vv,  
-ngoài ra,mỗi máy bay sẽ có thông tin về Số sê-ri và Ngày sản xuất  
duy nhất trên mỗi máy bay.  
(sủ dụng design pattern)  
Bài giải kham khảo:  
docx 6 trang myanh 25020 Free
Bạn đang xem tài liệu "Báo cáo cuối kỳ môn Lập trình hướng đối tượng - Chủ đề: State design pattern - Bùi Thanh Duy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docxbao_cao_cuoi_ky_mon_lap_trinh_huong_doi_tuong_chu_de_state_d.docx
  • pptxFLYWEIGHT.pptx