Unity içerisinde kullanılmak üzere generic yapıda hazır singleton sınıfı.
Unity içerisinde kullanılmak üzere global erişimler için klasikleşmiş desing pattern olan “Singleton” sınıfını paylaşmak istedim. Generic yapıda oluşturulan bir sınıf. Base class olarak tüm sub classlara implement edilebilecek bir generic sınıf. (Örn: class Example : Singleton<Example>)
Dikkat edilmesi gereken önemli bir nokta da Singleton sınıfı MonoBehaviour sınıfının Awake methodunda oluşturulduğu için hiyerarşik bir bağlılık söz konusu olur. Bu sebeple kullanmak istediğiniz yeri iyi analiz edip, design pattern’inizi bu bağlılığı dikkate alarak yapmanız gerekmektedir. Yani Awake methodu başka sınıflar içerisinde kullanıldığı zaman hiyerarşik bir bağlılık(dependency) oluşturur. Bu sebeple singleton özelinde anti-pattern düşüncesi ortaya çıkar. Buna dikkat etmekte fayda var.