Singleton pattern là gì

Msinh hoạt đầu

Singleton Pattern là 1 pattern cực kỳ cơ bạn dạng và tác dụng mà chắc chắn không ít xây dựng viên trong bọn họ vẫn sử dụng liên tiếp nên bản thân vẫn chỉ mô tả về có mang thôi.

Mục đích của Singleton Pattern

Một class ở trong dạng Singleton gồm nghĩa là: nó chỉ gồm một instance độc nhất vô nhị, bất kỳ ở chỗ nào gần như hoàn toàn có thể truy vấn tới instance của class singleton kia.Điển hình duy nhất nhưng mà ta vẫn thấy lúc lập trình sẵn game sẽ là GameManager, AudioManager, RoundManager, GameCenterManager, AdsManager,…


*
*
*
Singleton – Anti-pattern

“Tại sao Singleton lại là anti-pattern?”

Đầu tiên, các Singletons không được khai báo dưới dạng đổi thay tuyệt dạng tường minh, nhưng mà được áp dụng một bí quyết globally, thẳng thừng áp dụng instance ngay lập tức vào code nhưng không cần knhì báo.Lợi ích này đồng thời vẫn có tác dụng code trsống yêu cầu bí mật hơn, các bạn sẽ lần khần được code tôi đã sử dụng các singletons (dependencies) như thế nào sau 1 – 2 tháng đọc lại code, xuất xắc fan không giống (đồng nghiệp) phát âm gọi code của chính mình, câu hỏi duy nhất từ bây giờ là ngồi soi lại từng đoạn code.

Bạn đang xem: Singleton pattern là gì

Thứ đọng nhì, Singleton không vận dụng đa hình được nên chỉ hoàn toàn có thể thực hiện đúng thương hiệu của class Singleton đó. lấy ví dụ ban sơ các bạn tất cả Player Singleton, sau đây lại ra đời XaydaPlayer và NamekPlayer,… thừa kế từ Player Singleton mà lại các bạn lại không thực hiện được vì chưng không vận dụng được nhiều hình, đồng nghĩa cùng với việc code của công ty đã biết thành kết dán với class Player

“Nghe nghiêm trọng vậy, nắm gồm bắt buộc sử dụng Singleton Pattern không?”

Có chứ đọng, với những project bé dại, Singleton Pattern chưa phải là vụ việc gì lớn cả, nhằm cung ứng ra một thành phầm gấp rút (prototype) xuất xắc minimum viable hàng hóa nhằm kiểm test người dùng thì mình vẫn ưu tiên sử dụng.

Xem thêm: Example Sentences With, And The Definition And Usage Of " Relatable Là Gì

Implement Singleton Pattern trong Unity3D

Cách implement singleton pattern tương đối đơn giản và dễ dàng do vậy mình chỉ show code bản thân giỏi xài vậy.

Xem thêm: Từ Send Là Gì ? Nghĩa Của Từ Sent Trong Tiếng Việt Nghĩa Của Từ Send


using UnityEngine;public abstract class MonoSingleton : MonoBehaviour where T : MonoSingleton private static T m_Instance = null; static bool shuttingDown = false; public static T Instance get if (m_Instance == null &và !shuttingDown && Application.isPlaying) m_Instance = FindObjectOfType(typeof(T)) as T; if (m_Instance == null) Debug.LogWarning("No instance of " + typeof(T).ToString() + ", a temporary one is created."); m_Instance = new GameObject("Temp Instance of " + typeof(T).ToString(), typeof(T)).GetComponent(); return m_Instance; protected virtual void Awake() if (m_Instance == null) m_Instance = this as T; else if (m_Instance != this) Debug.LogError("Another instance of " + GetType() + " is already exist! Destroying self..."); DestroyImmediate(gameObject); return; protected virtual void OnDestroy() if (this == m_Instance) m_Instance = null; private void OnApplicationQuit() m_Instance = null; shuttingDown = true;
Lời kếtNếu chúng ta gồm thắc mắc giỏi ý kiến về bài viết vui tươi liên hệ bản thân qua page hoặc phản hồi phía bên dưới nhé.

Nguồn tmê say khảo:


Trả lời Hủy

Email của các bạn sẽ không được hiển thị công khai. Các ngôi trường buộc phải được khắc ghi *


Chuyên mục: Kiến Thức