Professional Documents
Culture Documents
Design Patterns Singleton
Design Patterns Singleton
Singleton
Nhóm 13
Nhóm 13
Nhóm 13
Design Patterns
Mục lục
Khái niệm
Lợi ích
Phân loại
Cách sử dụng
CONCEPT OF DESIGN PATTERNS
What
is
Design Patterns ?
Nhóm 13
CHARACTER OF DESIGN
Benefits of PATTERNS
-Tăng tốc độ phát triển phần mềm: Design Pattern đưa
ra khuôn mẫu giúp developer có được hướng giải quyết
Nhóm 13
Types of Design Patterns
Nhóm 13
Types of Design Patterns
Creational Pattern (nhóm khởi tạo): tập hợp các giải pháp liên quan đến khởi tạo
đối tượng.
Structural Pattern (nhóm cấu trúc): tập hợp các giải pháp liên quan đến thiết lập kết
cấu, liên hệ giữa các đối tượng.
Behavioral Pattern (nhóm hành vi): tập hợp các giải pháp liên quan đến các hành vi
của đối tượng và giao tiếp giữa các đối tượng khác nhau.
Nhóm 13
How to Design Patterns
use (demo)
Nhóm 13
Pattern
Singleton
Một trong 5 design pattern của
nhóm Creational Design Pattern.
Nhóm 13
Nhóm 13
Singleton Pattern
Mục lục
Khái niệm
Lợi ích
Phân loại
Cách sử dụng
Đặt vấn đề
Các bài toán cần truy cập vào các ứng dụng như: Shared resource,
Logger, Configuration, Caching, Thread pool, …
Nhóm 13
CONCEPT OF SINGLE PATTERN
What
is
Singleton
Pattern ?
Là mẫu thiết kế đảm bảo:
- Một class chỉ có duy nhất một instance.
- Cung cấp một điểm truy cập gobal vào
instance đó.
Nhóm 13
MAJOR COMPONENTS
What
is
Static variable: Dùng để đảm bảo rằng bộ nhớ chỉ
Singleton được cấp phát một lần, duy trì phiên bản duy nhất
của lớp Singleton.
Nhóm 13
Defects of DEFECTS
Nhóm 13
How to Single pattern
use
Eager initialization
Đây là cách dễ nhất nhưng nó có một nhược điểm là mặc dù instance đã được
khởi tạo nhưng có thể sẽ không dùng tới.
Nhóm 13
How to Single pattern
use
Lazy initialization
Cách này đã khắc phục được nhược điểm của Eager initialization, chỉ khi nào
geInstance được gọi thì instance mới được khởi tạo. Tuy nhiên cách này chỉ sử
dụng tốt trong trường hợp đơn luồng, trường hợp nếu có 2 luồng cùng chạy và
cùng gọi hàm getInstance tại cùng một thời điểm thì đương nhiên chúng ta có ít
nhất 2 thể hiện của instance
Nhóm 13
How to Single pattern
use
Lazy initialization
Nhóm 13
How to Single pattern
use
Thread Safe initialization :Sử dụng synchronized block nếu instance chưa được khởi tạo
Tài liệu tham khảo
https://itviec.com/blog/design-pattern/
https://www.geeksforgeeks.org/singleton-design-pattern/
https://viblo.asia/p/hoc-singleton-pattern-trong-5-phut-
4P856goOKY3