SlideShare a Scribd company logo
1 of 15
Design pattern
(Singleton & Prototype)
Người trình bày: Anh Vương
Hà Nội ngày 19 tháng 06 năm 2018
Tổng quan
Singleton
Prototype
Kết luận
1. Tổng quan
Design pattern là gì?
• Là các giải pháp cho các vấn đề thường hay gặp khi thiết
kế phần mềm.
• Các giải pháp này được thử nghiệm và sửa đổi bởi các nhà
phát triển phần mềm trong một khoảng thời gian dài.
Phân loại design pattern?
• Creational Patterns: Liên quan đến việc khởi tạo một đối tượng
• Structural Patterns: Liên quan đến cấu trúc lớp và các đối tượng
• Behavioral Patterns: Liên quan đến giao tiếp (tác động) giữa các đối tượng
2.Pattern Singleton
Vấn đề
Ta muốn một đối tượng duy nhất, global cho toàn app?
Ví dụ như:
Trình quản lý tài nguyên (file system, print spooler)
Config cho ứng dụng
Logger
2.Pattern Singleton
Singleton là gì và nó giải quyết vấn đề như nào?
Là mẫu thiết kế đảm bảo:
- Khởi tạo duy nhất một instance
- Cung cấp một điểm truy cập gobal vào instance đó
2.Pattern Singleton
Cài đặt implement Singleton:
• Sử dụng hàm khởi tạo private
• Tạo biến static là instance duy nhất của class đó và cung
cấp hàm public get biến static đó
Các vấn đề lưu ý khi sử dụng Singleton:
• Multithread: Sử dụng synchrozed
• Serialization: Overide method readResolve()
• Classloaders: Sử dụng một classloaders
2.Pattern Singleton
Cài đặt trong java (Demo cách triển khai)
2.Pattern Singleton
Kết luận:
• Singleton sử dụng khi muốn tạo một đối tượng duy nhất
cho toàn ứng dụng
• Khi sử dụng Singleton cần lưu ý trong các trường hợp
multithread, Serializable
3.Pattern Prototype
Vấn đề
Nhu cầu tạo mới đối tượng bằng cách clone một mẫu
Nguyên nhân:
• Khởi tạo mới tương đối phức tạp
• Chi phí cho hiệu năng cao
3.Pattern Prototype
Prototype là pattern cho phép tạo một đối mới bằng cách sao
chép lại các thành phần của một đối tượng có sẵn trước đó
Thành phần:
• Prototype: Mẫu có sẵn sử dụng để
clone
• ConcretePrototype: Cài đặt để có
thể clone chính nó
• Client: Nơi tạo đối tượng mới bằng
cách clone mẫu (Class sử dụng
prototype)
3.Pattern Prototype
Cài đặt prototype
3.Pattern Prototype
Các lưu ý khi sử dụng prototype
• Quản lý các prototype: Khi số lượng các prototype
lớn, cần một nơi tập trung để quản lý các prototype
• Khi clone: Chú ý các thuộc tính của prototype
(shallow clone và deep clone)
• Initializing clones: ???
3.Pattern Prototype
Cài đặt trong java (Demo cách triển khai)
3.Pattern Prototype
Kết luận:
Sử dụng prototype khi:
• Khởi tạo đối tượng tương đối phức tạp và tốn kém về hiệu năng
• Đối tượng mới tạo ra muốn độc lập so với nguyên mẫu
• Khi một instance của một đối tượng có ít trạng thái
4. Kết luận và tài liệu tham khảo
Tài liệu tham khảo:
https://www.oodesign.com/singleton-pattern.html
https://www.oodesign.com/prototype-pattern.html
https://www.tutorialspoint.com/design_pattern/design_pattern_overview.htm
https://viblo.asia/p/hoc-singleton-pattern-trong-5-phut-4P856goOKY3
E-book: Java-Design-Patterns

More Related Content

Similar to Singleton and Prototype Pattern

TT_MTKPM.pptx
TT_MTKPM.pptxTT_MTKPM.pptx
TT_MTKPM.pptxTriPhan74
 
mo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdfmo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdfZACNguyenHoang
 
Bai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxBai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxHLan34
 
Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...
Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...
Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...Working in Japan
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlTráng Hà Viết
 
Mo hinh He thong va Mo phong.ppt
Mo hinh He thong va Mo phong.pptMo hinh He thong va Mo phong.ppt
Mo hinh He thong va Mo phong.pptHaTrungKien2
 
Chuong7 linh
Chuong7 linhChuong7 linh
Chuong7 linhẢo Ảo
 
Slide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềmSlide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềmNguyễn Anh
 
Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon )
Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon ) Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon )
Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon ) BnhNguynVn
 
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...Vu Hung Nguyen
 
MÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆP
MÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆPMÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆP
MÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆPLe Nguyen Truong Giang
 
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm AgileVai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm AgileMinh Tri Lam
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxLnNguynThnh4
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcmHong Phuoc Nguyen
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngTráng Hà Viết
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdfDuongDo35
 
Chương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNGChương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNGLe Nguyen Truong Giang
 
Thiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùngThiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùngPhương Minh
 

Similar to Singleton and Prototype Pattern (20)

TT_MTKPM.pptx
TT_MTKPM.pptxTT_MTKPM.pptx
TT_MTKPM.pptx
 
mo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdfmo-hinh-phat-trien.pdf
mo-hinh-phat-trien.pdf
 
Bai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptxBai1_GioiThieuOOP.pptx
Bai1_GioiThieuOOP.pptx
 
Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...
Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...
Phuongphapluanduanphanmem truyenthongvaagilengotrungvietscrumday2013-13100720...
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Mo hinh He thong va Mo phong.ppt
Mo hinh He thong va Mo phong.pptMo hinh He thong va Mo phong.ppt
Mo hinh He thong va Mo phong.ppt
 
OOP_Bai13(vi).pdf
OOP_Bai13(vi).pdfOOP_Bai13(vi).pdf
OOP_Bai13(vi).pdf
 
Chuong7 linh
Chuong7 linhChuong7 linh
Chuong7 linh
 
Slide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềmSlide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềm
 
Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon )
Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon ) Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon )
Đồ Án Mô Phỏng cty Chấn Thái Sơn (Simulation Project company ChanThaiSon )
 
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...
ScrumDay Vietnam 2013: Phương pháp luận phần mềm - Truyền thống và Agile - Ng...
 
MÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆP
MÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆPMÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆP
MÔ HÌNH HÓA & MÔ PHỎNG CÁC CÁC HỆ THỐNG CÔNG NGHIỆP
 
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm AgileVai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
 
Bai01 oop overview
Bai01 oop overviewBai01 oop overview
Bai01 oop overview
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcm
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượng
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
 
Chương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNGChương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNG
 
Thiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùngThiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùng
 

Singleton and Prototype Pattern

  • 1. Design pattern (Singleton & Prototype) Người trình bày: Anh Vương Hà Nội ngày 19 tháng 06 năm 2018
  • 3. 1. Tổng quan Design pattern là gì? • Là các giải pháp cho các vấn đề thường hay gặp khi thiết kế phần mềm. • Các giải pháp này được thử nghiệm và sửa đổi bởi các nhà phát triển phần mềm trong một khoảng thời gian dài. Phân loại design pattern? • Creational Patterns: Liên quan đến việc khởi tạo một đối tượng • Structural Patterns: Liên quan đến cấu trúc lớp và các đối tượng • Behavioral Patterns: Liên quan đến giao tiếp (tác động) giữa các đối tượng
  • 4. 2.Pattern Singleton Vấn đề Ta muốn một đối tượng duy nhất, global cho toàn app? Ví dụ như: Trình quản lý tài nguyên (file system, print spooler) Config cho ứng dụng Logger
  • 5. 2.Pattern Singleton Singleton là gì và nó giải quyết vấn đề như nào? Là mẫu thiết kế đảm bảo: - Khởi tạo duy nhất một instance - Cung cấp một điểm truy cập gobal vào instance đó
  • 6. 2.Pattern Singleton Cài đặt implement Singleton: • Sử dụng hàm khởi tạo private • Tạo biến static là instance duy nhất của class đó và cung cấp hàm public get biến static đó Các vấn đề lưu ý khi sử dụng Singleton: • Multithread: Sử dụng synchrozed • Serialization: Overide method readResolve() • Classloaders: Sử dụng một classloaders
  • 7. 2.Pattern Singleton Cài đặt trong java (Demo cách triển khai)
  • 8. 2.Pattern Singleton Kết luận: • Singleton sử dụng khi muốn tạo một đối tượng duy nhất cho toàn ứng dụng • Khi sử dụng Singleton cần lưu ý trong các trường hợp multithread, Serializable
  • 9. 3.Pattern Prototype Vấn đề Nhu cầu tạo mới đối tượng bằng cách clone một mẫu Nguyên nhân: • Khởi tạo mới tương đối phức tạp • Chi phí cho hiệu năng cao
  • 10. 3.Pattern Prototype Prototype là pattern cho phép tạo một đối mới bằng cách sao chép lại các thành phần của một đối tượng có sẵn trước đó Thành phần: • Prototype: Mẫu có sẵn sử dụng để clone • ConcretePrototype: Cài đặt để có thể clone chính nó • Client: Nơi tạo đối tượng mới bằng cách clone mẫu (Class sử dụng prototype)
  • 12. 3.Pattern Prototype Các lưu ý khi sử dụng prototype • Quản lý các prototype: Khi số lượng các prototype lớn, cần một nơi tập trung để quản lý các prototype • Khi clone: Chú ý các thuộc tính của prototype (shallow clone và deep clone) • Initializing clones: ???
  • 13. 3.Pattern Prototype Cài đặt trong java (Demo cách triển khai)
  • 14. 3.Pattern Prototype Kết luận: Sử dụng prototype khi: • Khởi tạo đối tượng tương đối phức tạp và tốn kém về hiệu năng • Đối tượng mới tạo ra muốn độc lập so với nguyên mẫu • Khi một instance của một đối tượng có ít trạng thái
  • 15. 4. Kết luận và tài liệu tham khảo Tài liệu tham khảo: https://www.oodesign.com/singleton-pattern.html https://www.oodesign.com/prototype-pattern.html https://www.tutorialspoint.com/design_pattern/design_pattern_overview.htm https://viblo.asia/p/hoc-singleton-pattern-trong-5-phut-4P856goOKY3 E-book: Java-Design-Patterns

Editor's Notes

  1. Tài liệu tham khảo: https://www.tutorialspoint.com/design_pattern/design_pattern_overview.htm
  2. Link tham khảo: https://www.oodesign.com/prototype-pattern.html https://www.geeksforgeeks.org/deep-shallow-lazy-copy-java-examples/ https://www.geeksforgeeks.org/clone-method-in-java-2/