SlideShare a Scribd company logo
1 of 23
Iterator pattern
Memento Pattern
State Pattern
MẪU THIẾT KẾ PHẦN
MỀM
Trường Đại Học Ngoại Ngữ Và Tin
Học
Thành viên nhóm:
Nguyễn XuânPhát
Nguyễn Trọng Phú
Nguyễn Tấn Tuấn
Phan Minh Trí
Iterator
pattern
NỘI DUNG
1
Definition
Concept
Implementation
Class Diagram
Demonstration 1,2
Q&A Session
Definition
Cung cấp một cách để truy cập các yếu tố của một đối
tượng tổng hợp một cách tuần tự mà không để lộ biểu diễn
cơ bản của nó.
Concept
Để đi qua một vùng chứa (hoặc một tập hợp các đối tượng)
để truy cập các phần tử của nó mà không cần biết dữ liệu
được
lưu trữ nội bộ như thế nào
Những thành phần trên được mô tả như sau
Implementation
Phương thức First() đặt lại con trỏ đến phần tử đầu tiên trước khi bạn bắt đầu đi qua
cấu trúc dữ liệu
Phương thức Next() trả về phần tử next trong container
Phương thức CurrentItem() trả về phần tử hiện tại của container mà iterator đang trỏ tại
một thời điểm cụ thể.
IsCollectionEnds() xác thực xem có phần tử tiếp theo nào để xử lý thêm hay không. Vì
vậy, phương pháp này giúp bạn quyết định xem bạn đã đến cuối container của mình hay
chưa.
C# có các bộ lặp đã được giới thiệu
trong Visual Studio 2005. Tuyên bố
foreach thường được sử dụng
trong bối cảnh này.
Nếu bạn đã quen thuộc với Java,
bạn có thể đã sử dụng giao diện
Iterator tích hợp của Java,
java.util.Iterator.
Mẫu này được sử dụng trong các
giao diện như java.util.Iterator or
java.util.Enumeration.
Công ty A lưu trữ hồ sơ nhân viên của
mình trong cấu trúc dữ liệu danh sách
được liên kết. Công ty B lưu trữ dữ
liệu nhân viên của mình trong một
mảng.
Mẫu Trình lặp rất tiện dụng trong tình
huống như vậy vì bạn không cần
phải viết mã từ đầu.
Vì vậy, bạn có thể chỉ cần gọi các
phương thức đó mà không cần viết
lại mã.
Ví dụ trong thế
giới thực
Ví dụ về thế giới
máy tính
Class
Diagram
Solution
Explorer View
Học hợp tác là điều có thể
Phương pháp tiếp cận lấy học
sinh làm trung tâm
Dạy học phân
hóa
Phương pháp tiếp cận lấy giáo
viên làm trung tâm
Dạy học tích hợp
Học tập nghiêm túc thông qua các
khóa học phù hợp với từng học
sinh
Demonstration
1
Demonstration
2
Q&A Session
Mẫu Iterator được sử dụng để làm gì?
Bạn có thể đi qua một cấu trúc đối tượng mà không cần biết chi tiết bên trong của nó.
Bạn có thể đi qua một bộ sưu tập theo nhiều cách khác nhau. Nếu chúng được thiết kế phù hợp,
nhiều chuyến đi ngang cũng có thể song song.
01
02
03
Những thách thức chính liên quan đến mô hình này là gì?
Bạn phải đảm bảo rằng không có sửa đổi ngẫu nhiên nào diễn ra trong quá trình đi
qua.
Nhưng để đối phó với thách thức đã đề cập trước đó, bạn chỉ cần lấy một bản
sao lưu và sau đó tiếp tục. Tôi có đúng không?
Lấy một bản sao lưu và kiểm tra lại nó sau này là một hoạt động tốn kém.
Q&A Session
05 Trong quá trình triển khai này, bạn có thể chỉ cần xem xét sử dụng một trong
hai môn khoa học hoặc nghệ thuật để chứng minh việc triển khai mẫu Trình lặp
và giảm kích
thước mã. Điều này có đúng không?
·Nhưng khi bạn sử dụng hai cấu trúc dữ liệu khác nhau, bạn có thể hình dung sức mạnh thực sự của
mẫu thiết kế Trình lặp. Vì vậy, tôi đã giữ cả hai ở đây.
04 Trong code, mình thấy một region tên là Aggregate. Có lý do nào đằng sau việc
đặt tên đó không?
Tổng hợp định nghĩa một giao diện để tạo một đối tượng Iterator. Tôi đã lấy tên từ cuốn sách GoF.
Memento
Pattern
NỘI DUNG
2
Definition
Concept
Real-World Example
Computer-World Example
Implementation
Class diagram
Solution Explorer View
Demonstration 1
Q&A Session
Memento
Pattern
Definition
Không vi phạm đóng gói, chụp và bên
ngoài trạng thái bên trong của một đối
tượng để đối tượng có thể được khôi
phục về trạng thái này sau này
01
Concept
Từ memento là một lời nhắc nhở về các
sự kiện trong quá khứ. Bằng cách làm
theo cách tiếp cận hướng đối tượng,
bạn cũng có thể theo dõi (hoặc lưu)
trạng thái của một đối tượng
Real-World Example
Nó là một mô hình toán học, nhưng một
trong những ứng dụng đơn giản nhất
của nó là một cửa quay. Một cửa quay
có một số cánh tay quay, ban đầu bị
khóa.
02
03
Computer-World Example
Trong ứng dụng vẽ, bạn có thể cần phải
hoàn nguyên về trạng thái cũ hơn.
Ngoài ra, trong các giao dịch cơ sở dữ
liệu, bạn có thể cần phải khôi phục một
số giao dịch cụ thể. Các mẫu memento
có thể được sử dụng trong các tình
huống đó
04
Implementation
·Một kỷ vật lưu lại trạng thái bên trong
của người khởi tạo.
·Chỉ có người khởi tạo nên tạo ra các
kỷ vật. Sau đó, nó có thể sử dụng một
kỷ vật để khôi phục trạng thái bên
trong trước đó.
·Lớp này được sử dụng để giữ an toàn
cho vật lưu niệm, nhưng nó không bao
giờ hoạt động hoặc kiểm tra nội dung
của một kỷ vật. Một người chăm sóc có
thể lấy kỷ vật từ người khởi tạo.
05
Memento
Pattern
Class
diagram
Solution
Explorer View
Q&A Session
02 Những thách thức chính liên quan đến mẫu thiết kế Memento là gì?
.Có nhiều kỷ vật hơn đòi hỏi phải lưu trữ nhiều hơn. Ngoài ra, họ đặt thêm gánh nặng cho người chăm
sóc.
· Điểm trước làm tăng chi phí bảo trì.
·Bạn không thể bỏ qua thời gian cần thiết để lưu các trạng thái này, điều này có thể làm giảm hiệu
suất tổng thể của ứng dụng.
01 Bạn có thể sử dụng phiên bản không đồng nhất, chẳng hạn như ArrayList,
trong ví dụ trước không?
Tổng hợp định nghĩa một giao diện để tạo một đối tượng Iterator. Tôi đã lấy tên từ cuốn sách GoF.
Q&ASession
03 Tôi bối rối. Để hỗ trợ các hoạt động hoàn tác, tôi nên sử dụng mẫu nào—
Memento hay Command?
GoF nói rằng đây là những mô hình liên quan. Nó chủ yếu phụ thuộc vào cách bạn muốn xử lý tình
huống.
State
Pattern
NỘI DUNG
3
Definition
Concept
Real-World Example
Computer-World Exampl
Implementation
Class Diagram
Solution Explorer View
Demonstration
Q&A Session
State
Pattern
Definition
Không vi phạm đóng gói, chụp và bên
ngoài trạng thái bên trong của một đối
tượng để đối tượng có thể được khôi
phục về trạng thái này sau này
01
Concept
Bằng cách làm theo cách tiếp cận
hướng đối tượng, bạn cũng có thể theo
dõi (hoặc lưu) trạng thái của một đối
tượng. Vì vậy, bất cứ khi nào bạn muốn
khôi phục một đối tượng về trạng thái
trước đó, bạn có thể cân nhắc sử dụng
mẫu này
02
Real-World Example
Nó là một mô hình toán học, nhưng một
trong những ứng dụng đơn giản nhất
của nó là một cửa quay. Một cửa quay
có một số cánh tay quay, ban đầu bị
khóa.
03
Computer-World Example
Trong ứng dụng vẽ, bạn có thể cần phải
hoàn nguyên về trạng thái cũ hơn.
Ngoài ra, trong các giao dịch cơ sở dữ
liệu, bạn có thể cần phải khôi phục một
số giao dịch cụ thể.
04
State
Pattern
Implementation
·Một kỷ vật lưu lại trạng thái bên trong
của người khởi tạo.
·Chỉ có người khởi tạo nên tạo ra các
kỷ vật. Sau đó, nó có thể sử dụng một
kỷ vật để khôi phục trạng thái bên
trong trước đó.
·Một lớp chăm sóc là nơi chứa đựng
những kỷ vật. Lớp học này được sử
dụng để giữ an toàn cho vật lưu niệm,
nhưng nó không bao giờ hoạt động
hoặc kiểm tra nội dung của một kỷ vật.
Một người chăm sóc có thể lấy kỷ vật
từ người khởi tạo.
.
05
State
Pattern
Class
diagram
Solution
Explorer View
Q&A Session
Ông có thể nói rõ hơn về cách mô hình này hoạt động trong một kịch bản
thực tế không?
Mẫu Trạng thái rất hữu ích nếu bạn muốn thiết kế một loại thay đổi hành vi tương tự trong một đối
tượng khi trạng thái bên trong của nó thay đổi.
01
02
03
Trong ví dụ này, bạn chỉ xem xét ba trạng thái của TV: Bật, Tắt và Tắt tiếng. Có
thể có nhiều tiểu bang khác; ví dụ: có thể có một tiểu bang xử lý các sự cố kết
nối hoặc các điều kiện hiển thị khác nhau. Tại sao bạn đã bỏ qua những vấn đề
đó?
Câu trả lời đơn giản là tôi đã bỏ qua những trạng thái đó để giữ cho mọi thứ đơn giản.
Bạn đang thực hiện nguyên tắc mở / đóng trong ví dụ của mình như thế
nào?
Mỗi trạng thái TV này đều bị đóng để sửa đổi, nhưng bạn có thể thêm trạng thái mới vào lớp
TV
Q&A Session
Các đặc điểm chung giữa mô hình Strategy và mô hình State là gì?
The State pattern có thể được coi là một động lực Strategy pattern. Both các mô hình thúc đẩy thành
phần và ủy quyền.
04
05
06
Dường như với tôi rằng các đối tượng trạng thái này đang hoạt động giống như
những người độc thân. Điều này có đúng không?
Các lớp con cụ thể của IPossibleStates không chứa bất kỳ trạng thái cục bộ nào trong ví dụ này và kết
quả là, trong ứng dụng này, chỉ có một phiên bản trạng thái đang hoạt động.
Trong các triển khai này, TV là một lớp cụ thể. Tại sao bạn không lập trình để giao
diện trong trường hợp này?
Tôi cho rằng lớp TV sẽ không thay đổi và vì vậy đã bỏ qua phần đó để giảm một số kích thước mã
của chương trình.

More Related Content

Similar to TT_MTKPM.pptx

T+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umlT+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umllam lythanh
 
Bai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxBai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxHLan34
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượngSon Nguyen
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramHuy Vũ
 
Ke hoach bai giang
Ke hoach bai giangKe hoach bai giang
Ke hoach bai giangChau Nguyen
 
Singleton and Prototype Pattern
Singleton and Prototype PatternSingleton and Prototype Pattern
Singleton and Prototype PatternVuong Anh
 
Seminar clean code
Seminar clean codeSeminar clean code
Seminar clean codeNguyen Thieu
 
DCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdfDCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdftrucmt2000
 
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...jackjohn45
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT NguynMinh294
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11K33LA-KG
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thuaTuan Do
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06xcode_esvn
 
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...tPhan78
 
07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.ppt07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.pptssuser7627f6
 
Bồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toánBồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toánNguyễn Đức
 

Similar to TT_MTKPM.pptx (20)

Vb6 16 (10)
Vb6 16 (10)Vb6 16 (10)
Vb6 16 (10)
 
T+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umlT+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp uml
 
Bai05 ket tapvakethua
Bai05 ket tapvakethuaBai05 ket tapvakethua
Bai05 ket tapvakethua
 
Bai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxBai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptx
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượng
 
Bai03 xay dunglop
Bai03 xay dunglopBai03 xay dunglop
Bai03 xay dunglop
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
 
Ke hoach bai giang
Ke hoach bai giangKe hoach bai giang
Ke hoach bai giang
 
Singleton and Prototype Pattern
Singleton and Prototype PatternSingleton and Prototype Pattern
Singleton and Prototype Pattern
 
Seminar clean code
Seminar clean codeSeminar clean code
Seminar clean code
 
DCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdfDCCTK45_Lập Trình HĐT.pdf
DCCTK45_Lập Trình HĐT.pdf
 
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
 
bai tap tuan 4
bai tap tuan 4bai tap tuan 4
bai tap tuan 4
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
 
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
KBDH-Trần Ký Lịnh - Bài 17 - CVI-Lớp 11
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
 
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
 
07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.ppt07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.ppt
 
Bồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toánBồi dưỡng HSG Tin chuyên đề thuật toán
Bồi dưỡng HSG Tin chuyên đề thuật toán
 

Recently uploaded

SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfhoangtuansinh1
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảohoanhv296
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-KhnhHuyn546843
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhdtlnnm
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgsNmmeomeo
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 

TT_MTKPM.pptx

  • 1. Iterator pattern Memento Pattern State Pattern MẪU THIẾT KẾ PHẦN MỀM Trường Đại Học Ngoại Ngữ Và Tin Học Thành viên nhóm: Nguyễn XuânPhát Nguyễn Trọng Phú Nguyễn Tấn Tuấn Phan Minh Trí
  • 3. Definition Cung cấp một cách để truy cập các yếu tố của một đối tượng tổng hợp một cách tuần tự mà không để lộ biểu diễn cơ bản của nó.
  • 4. Concept Để đi qua một vùng chứa (hoặc một tập hợp các đối tượng) để truy cập các phần tử của nó mà không cần biết dữ liệu được lưu trữ nội bộ như thế nào Những thành phần trên được mô tả như sau
  • 5. Implementation Phương thức First() đặt lại con trỏ đến phần tử đầu tiên trước khi bạn bắt đầu đi qua cấu trúc dữ liệu Phương thức Next() trả về phần tử next trong container Phương thức CurrentItem() trả về phần tử hiện tại của container mà iterator đang trỏ tại một thời điểm cụ thể. IsCollectionEnds() xác thực xem có phần tử tiếp theo nào để xử lý thêm hay không. Vì vậy, phương pháp này giúp bạn quyết định xem bạn đã đến cuối container của mình hay chưa.
  • 6. C# có các bộ lặp đã được giới thiệu trong Visual Studio 2005. Tuyên bố foreach thường được sử dụng trong bối cảnh này. Nếu bạn đã quen thuộc với Java, bạn có thể đã sử dụng giao diện Iterator tích hợp của Java, java.util.Iterator. Mẫu này được sử dụng trong các giao diện như java.util.Iterator or java.util.Enumeration. Công ty A lưu trữ hồ sơ nhân viên của mình trong cấu trúc dữ liệu danh sách được liên kết. Công ty B lưu trữ dữ liệu nhân viên của mình trong một mảng. Mẫu Trình lặp rất tiện dụng trong tình huống như vậy vì bạn không cần phải viết mã từ đầu. Vì vậy, bạn có thể chỉ cần gọi các phương thức đó mà không cần viết lại mã. Ví dụ trong thế giới thực Ví dụ về thế giới máy tính
  • 8. Học hợp tác là điều có thể Phương pháp tiếp cận lấy học sinh làm trung tâm Dạy học phân hóa Phương pháp tiếp cận lấy giáo viên làm trung tâm Dạy học tích hợp Học tập nghiêm túc thông qua các khóa học phù hợp với từng học sinh Demonstration 1 Demonstration 2
  • 9. Q&A Session Mẫu Iterator được sử dụng để làm gì? Bạn có thể đi qua một cấu trúc đối tượng mà không cần biết chi tiết bên trong của nó. Bạn có thể đi qua một bộ sưu tập theo nhiều cách khác nhau. Nếu chúng được thiết kế phù hợp, nhiều chuyến đi ngang cũng có thể song song. 01 02 03 Những thách thức chính liên quan đến mô hình này là gì? Bạn phải đảm bảo rằng không có sửa đổi ngẫu nhiên nào diễn ra trong quá trình đi qua. Nhưng để đối phó với thách thức đã đề cập trước đó, bạn chỉ cần lấy một bản sao lưu và sau đó tiếp tục. Tôi có đúng không? Lấy một bản sao lưu và kiểm tra lại nó sau này là một hoạt động tốn kém.
  • 10. Q&A Session 05 Trong quá trình triển khai này, bạn có thể chỉ cần xem xét sử dụng một trong hai môn khoa học hoặc nghệ thuật để chứng minh việc triển khai mẫu Trình lặp và giảm kích thước mã. Điều này có đúng không? ·Nhưng khi bạn sử dụng hai cấu trúc dữ liệu khác nhau, bạn có thể hình dung sức mạnh thực sự của mẫu thiết kế Trình lặp. Vì vậy, tôi đã giữ cả hai ở đây. 04 Trong code, mình thấy một region tên là Aggregate. Có lý do nào đằng sau việc đặt tên đó không? Tổng hợp định nghĩa một giao diện để tạo một đối tượng Iterator. Tôi đã lấy tên từ cuốn sách GoF.
  • 11. Memento Pattern NỘI DUNG 2 Definition Concept Real-World Example Computer-World Example Implementation Class diagram Solution Explorer View Demonstration 1 Q&A Session
  • 12. Memento Pattern Definition Không vi phạm đóng gói, chụp và bên ngoài trạng thái bên trong của một đối tượng để đối tượng có thể được khôi phục về trạng thái này sau này 01 Concept Từ memento là một lời nhắc nhở về các sự kiện trong quá khứ. Bằng cách làm theo cách tiếp cận hướng đối tượng, bạn cũng có thể theo dõi (hoặc lưu) trạng thái của một đối tượng Real-World Example Nó là một mô hình toán học, nhưng một trong những ứng dụng đơn giản nhất của nó là một cửa quay. Một cửa quay có một số cánh tay quay, ban đầu bị khóa. 02 03
  • 13. Computer-World Example Trong ứng dụng vẽ, bạn có thể cần phải hoàn nguyên về trạng thái cũ hơn. Ngoài ra, trong các giao dịch cơ sở dữ liệu, bạn có thể cần phải khôi phục một số giao dịch cụ thể. Các mẫu memento có thể được sử dụng trong các tình huống đó 04 Implementation ·Một kỷ vật lưu lại trạng thái bên trong của người khởi tạo. ·Chỉ có người khởi tạo nên tạo ra các kỷ vật. Sau đó, nó có thể sử dụng một kỷ vật để khôi phục trạng thái bên trong trước đó. ·Lớp này được sử dụng để giữ an toàn cho vật lưu niệm, nhưng nó không bao giờ hoạt động hoặc kiểm tra nội dung của một kỷ vật. Một người chăm sóc có thể lấy kỷ vật từ người khởi tạo. 05 Memento Pattern
  • 15. Q&A Session 02 Những thách thức chính liên quan đến mẫu thiết kế Memento là gì? .Có nhiều kỷ vật hơn đòi hỏi phải lưu trữ nhiều hơn. Ngoài ra, họ đặt thêm gánh nặng cho người chăm sóc. · Điểm trước làm tăng chi phí bảo trì. ·Bạn không thể bỏ qua thời gian cần thiết để lưu các trạng thái này, điều này có thể làm giảm hiệu suất tổng thể của ứng dụng. 01 Bạn có thể sử dụng phiên bản không đồng nhất, chẳng hạn như ArrayList, trong ví dụ trước không? Tổng hợp định nghĩa một giao diện để tạo một đối tượng Iterator. Tôi đã lấy tên từ cuốn sách GoF.
  • 16. Q&ASession 03 Tôi bối rối. Để hỗ trợ các hoạt động hoàn tác, tôi nên sử dụng mẫu nào— Memento hay Command? GoF nói rằng đây là những mô hình liên quan. Nó chủ yếu phụ thuộc vào cách bạn muốn xử lý tình huống.
  • 17. State Pattern NỘI DUNG 3 Definition Concept Real-World Example Computer-World Exampl Implementation Class Diagram Solution Explorer View Demonstration Q&A Session
  • 18. State Pattern Definition Không vi phạm đóng gói, chụp và bên ngoài trạng thái bên trong của một đối tượng để đối tượng có thể được khôi phục về trạng thái này sau này 01 Concept Bằng cách làm theo cách tiếp cận hướng đối tượng, bạn cũng có thể theo dõi (hoặc lưu) trạng thái của một đối tượng. Vì vậy, bất cứ khi nào bạn muốn khôi phục một đối tượng về trạng thái trước đó, bạn có thể cân nhắc sử dụng mẫu này 02
  • 19. Real-World Example Nó là một mô hình toán học, nhưng một trong những ứng dụng đơn giản nhất của nó là một cửa quay. Một cửa quay có một số cánh tay quay, ban đầu bị khóa. 03 Computer-World Example Trong ứng dụng vẽ, bạn có thể cần phải hoàn nguyên về trạng thái cũ hơn. Ngoài ra, trong các giao dịch cơ sở dữ liệu, bạn có thể cần phải khôi phục một số giao dịch cụ thể. 04 State Pattern
  • 20. Implementation ·Một kỷ vật lưu lại trạng thái bên trong của người khởi tạo. ·Chỉ có người khởi tạo nên tạo ra các kỷ vật. Sau đó, nó có thể sử dụng một kỷ vật để khôi phục trạng thái bên trong trước đó. ·Một lớp chăm sóc là nơi chứa đựng những kỷ vật. Lớp học này được sử dụng để giữ an toàn cho vật lưu niệm, nhưng nó không bao giờ hoạt động hoặc kiểm tra nội dung của một kỷ vật. Một người chăm sóc có thể lấy kỷ vật từ người khởi tạo. . 05 State Pattern
  • 22. Q&A Session Ông có thể nói rõ hơn về cách mô hình này hoạt động trong một kịch bản thực tế không? Mẫu Trạng thái rất hữu ích nếu bạn muốn thiết kế một loại thay đổi hành vi tương tự trong một đối tượng khi trạng thái bên trong của nó thay đổi. 01 02 03 Trong ví dụ này, bạn chỉ xem xét ba trạng thái của TV: Bật, Tắt và Tắt tiếng. Có thể có nhiều tiểu bang khác; ví dụ: có thể có một tiểu bang xử lý các sự cố kết nối hoặc các điều kiện hiển thị khác nhau. Tại sao bạn đã bỏ qua những vấn đề đó? Câu trả lời đơn giản là tôi đã bỏ qua những trạng thái đó để giữ cho mọi thứ đơn giản. Bạn đang thực hiện nguyên tắc mở / đóng trong ví dụ của mình như thế nào? Mỗi trạng thái TV này đều bị đóng để sửa đổi, nhưng bạn có thể thêm trạng thái mới vào lớp TV
  • 23. Q&A Session Các đặc điểm chung giữa mô hình Strategy và mô hình State là gì? The State pattern có thể được coi là một động lực Strategy pattern. Both các mô hình thúc đẩy thành phần và ủy quyền. 04 05 06 Dường như với tôi rằng các đối tượng trạng thái này đang hoạt động giống như những người độc thân. Điều này có đúng không? Các lớp con cụ thể của IPossibleStates không chứa bất kỳ trạng thái cục bộ nào trong ví dụ này và kết quả là, trong ứng dụng này, chỉ có một phiên bản trạng thái đang hoạt động. Trong các triển khai này, TV là một lớp cụ thể. Tại sao bạn không lập trình để giao diện trong trường hợp này? Tôi cho rằng lớp TV sẽ không thay đổi và vì vậy đã bỏ qua phần đó để giảm một số kích thước mã của chương trình.