Bạn ghé thăm diễn đàn lần đầu? hãy đăng ký ngay bây giờ để tham gia.
  • Đăng nhập:

Chào mừng bạn đến với ITVNN FORUM - Diễn đàn công nghệ thông tin.

Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần Hỏi/Ðáp để biết cách dùng diễn đàn. Để có thể tham gia thảo luận bạn phải đăng ký làm thành viên, click vào đây để đăng ký.


  • Partner Area
    • ITVNN HOSTING - Thiết kế website, Cung cấp Domain, Hosting, VPS Việt Nam Anh Hùng - Thông tin truyền thông
kết quả từ 1 tới 1 trên 1

Ðề tài: Singleton Pattern

Tăng kích thước phông chữ Giảm kích thước phông chữ
  1. #1
    nmhung's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Jan 2011
    Thành viên thứ
    37564
    Tuổi
    37
    Giới tính
    Bài gởi
    167
    Level: 35 [?]
    Experience: 808,467
    Next Level: 824,290
    Cảm ơn 74
    Cảm ơn 12 lần / 10 Bài viết

    Default Singleton Pattern  

    Singleton Pattern

    Đôi khi, bạn phải giải quyết trường hợp làm thế nào để khởi tạo duy nhất 1 và chỉ 1 đối tượng dẫn xuất từ một lớp.

    Singleton pattern sẽ giải quyết vấn đề này. Nó là 1 design pattern đơn giản nhất bao gồm 1 lớp, lớp này đảm bảo sẽ khởi tạo chỉ một đối tượng và cung cấp khả năng truy xuất mức Global tới đối tượng đó. Có nghĩa là đối tượng có thể được sử dụng ở bất kỳ nơi nào trong ứng dụng mà không cần phải khởi tạo Contructor.

    Mục tiêu

    - Đảm bảo chỉ một đối tượng được khởi tạo từ lớp
    - Cung cấp khả năng truy xuất mức Global (global point of access) tới đối tượng đó.

    Singleton Class bao gồm :
    -Static member
    -Private Constructor
    -Và một public static method (method này sẽ reference (trỏ) đến Static member ở trên.

    Code: 
    class Singleton
    {
        private static Singleton m_instance;
        private Singleton()
        {
            ...
        }
    
        public static synchronized Singleton getInstance()
        {
            if (m_instance == null)
                m_instance = new Singleton();
    
            return m_instance;
        }
        ...
        public void doSomething()
        {
            ...    
        }
    }
    rong đoạn mã trên, phương thức getInstance() đảm bảo rằng chỉ duy nhất một đối tượng dẫn xuất từ lớp Singleton được khởi tạo. Contructor (được overide thành private) chỉ được truy xuất bên trong lớp Singleton, điều này đảm bảo rằng phương thức getInstance() là điểm duy nhất có thể khởi tạo đối tượng.

    Thêm vào đó, getInstance() cung cấp global point of access đến đối tượng. Bạn có thể sử dụng theo cách dưới đây:

    Code: 
    Singleton.getInstance().doSomething();

    Vậy câu hỏi là vì sao ta ko dùng static ?

  2. Thành viên sau đây nói lời Cảm ơn tới nmhung cho bài viết hữu ích này:

    Tiểu Bá Vương 1404 (18-03-2011)


 

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Trend Micro Virus Pattern File 6.677.00
    By henry07 in forum Phần mềm
    Trả lời: 0
    Bài mới gởi: 09-12-2009, 12:52 PM

Tags for this Thread

Bookmarks

Quuyền Hạn Của Bạn

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể chỉnh sửa bài viết
  •