Singleton pattern là gì

Mnghỉ ngơi đầu

Singleton Pattern là 1 pattern cực kì cơ phiên bản và hiệu quả nhưng mà chắc chắn là tương đối nhiều lập trình viên trong chúng ta vẫn thực hiện tiếp tục buộc phải bản thân sẽ chỉ nội dung về định nghĩa thôi.

Mục đích của Singleton Pattern

Một class ở trong dạng Singleton tất cả nghĩa là: nó chỉ gồm một instance tốt nhất, ngẫu nhiên chỗ nào phần đa hoàn toàn có thể truy cập cho tới instance của class singleton đó.Điển hình tuyệt nhất nhưng ta vẫn thấy Lúc xây dựng game chính là GameManager, AudioManager, RoundManager, GameCenterManager, AdsManager,…


*
*
*
Singleton – Anti-pattern

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

Trước hết, các Singletons không được knhị báo dưới dạng trở nên hay dạng tường minh, mà lại được thực hiện một phương pháp globally, thẳng cánh sử dụng instance ngay lập tức trong code mà lại không nên khai báo.Lợi ích này đồng thời vẫn làm code trở cần bí mật hơn, các bạn sẽ trù trừ được code tôi đã áp dụng những singletons (dependencies) như thế nào sau 1 – 2 tháng gọi lại code, tốt bạn khác (đồng nghiệp) phát âm hiểu code của chính mình, câu hỏi nhất lúc này là ngồi soi lại từng đoạn code.

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

Thứ nhị, Singleton không vận dụng đa hình được nên chỉ hoàn toàn có thể sử dụng đúng thương hiệu của class Singleton kia. ví dụ như ban đầu chúng ta tất cả Player Singleton, sau này lại ra đời XaydaPlayer cùng NamekPlayer,… kế thừa từ bỏ Player Singleton mà lại các bạn lại không áp dụng được vị không áp dụng được đa hình, đồng nghĩa tương quan cùng với Việc code của người tiêu dùng đã trở nên kết dính cùng với class Player

“Nghe nghiêm trọng vậy, thay có yêu cầu áp dụng Singleton Pattern không?”

Có chứ, với các project nhỏ dại, Singleton Pattern chưa phải là vụ việc gì mập cả, nhằm cấp dưỡng ra một thành phầm hối hả (prototype) tốt 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: Phân Tích Bảng Ngọc Thu Thập Hắc Ám Hoành Hành Chế Độ Aram, Sát Thương Thu Thập Hắc Ám Mùa 11

Implement Singleton Pattern trong Unity3D

Cách implement singleton pattern hơi đơn giản và dễ dàng bởi vậy mình chỉ show code mình xuất xắc xài vậy.


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 các bạn gồm vướng mắc xuất xắc ý kiến về bài viết vui vẻ liên hệ bản thân qua page hoặc bình luận phía dưới nhé.

Nguồn tđam mê khảo:


Trả lời Hủy

Thư điện tử của các bạn sẽ không được hiển thị công khai. Các trường phải được lưu lại *