Singleton Class

Hi all,

Đã lâu chưa có bài viết mới, hôm nay mình xin tiếp tục với bài viết về 1 Design Pattern (mẫu thiết kế) là Singleton.

Singleton chắc không còn xa lạ với nhiều người, đặc biệt là trong lập trình C/C++ dùng trong Game, đây là một mẫu khá phổ biến trong việc phát triển game (Điển hình và kinh điển đó là Mario).

Vậy mẫu thiết kế này mang lại điều gì?

Singleton đảm bảo rằng Object (đối tượng) chúng ta tạo ra là duy nhất, không bị trùng lắp khi được gọi hoặc vô tình gọi/ tạo ra ở một nơi nào đó trong ứng dụng. (Tức là đối tượng đó là duy nhất trong ứng dụng) và có tính chất toàn cục (có thể gọi ở bất kỳ đâu).

Vì vậy với tính chất này Singleton trong Ruby rất thích hợp để tạo thành một lớp thiết lập cho ứng dụng.

Sau đây chúng ta cùng tìm hiểu về Singleton trong Ruby nhé.

Được xây dựng trên chuẩn về mẫu thiết kế này, Ruby đã hiện thực hoá qua modun Singleton, vì vậy chúng ta chỉ việc thêm như sau vào nơi bạn cần sử dụng:

Điểm khác của cách sử dụng với các class có chứa singleton trong ruby là ta gọi các instance của nó chứ không phải đối tượng được tạo mới.

Ví dụ:

Sử dụng như sau:

Như các bạn thấy thì a và b là 2 instance được tạo ra và là như nhau (nếu bạn xem thông tin của a và b thì chúng có cùng địa chỉ vùng nhớ, v.v)

Đây là phần mở đầu để bạn hiểu về cách sử dụng Singleton như thế nào!

Để hiểu rõ hơn mình sẽ trình bày ở bài sau cách dùng Singleton vào Rails app để lưu trữ các setting cần thiết.

Để xem thêm về mẫu này có thể xem tại link sau: Singleton Ruby

Thân,

 

Tiến An

Admin tại RubySG.com

You may also like...