import 'package:get/get.dart'; class FikoYTParameter { final String name; // Bu harita, eventlerin adlarını ve bunlara karşılık gelen event nesnelerini tutacak. static final Map _eventCache = {}; // Factory constructor factory FikoYTParameter( String name, { dynamic initialValue, }) { // Eğer aynı isimde bir event zaten varsa, onu döndür if (_eventCache.containsKey(name)) { return _eventCache[name]! as FikoYTParameter; } // Yeni event oluşturuluyorsa, eventCache'e ekle final newEvent = FikoYTParameter._internal( name, initialValue: initialValue, ); _eventCache[name] = newEvent; return newEvent; } // Özel constructor FikoYTParameter._internal( this.name, { dynamic initialValue, }) { if (initialValue is Function) { _value = Rx(initialValue()); } else { _value = Rx(initialValue ?? null as T); } } // Değeri Valuesi late final Rx _value; // Rx olarak değer tipi belirtiliyor. // Getter for value Rx get $value => _value; T get value => _value.value; // Setter for value set value(T newValue) { _value.value = newValue; _value.refresh(); // Değer değiştikçe yenileme } } class FikoYTGlobalParameter { final String name; // Bu harita, eventlerin adlarını ve bunlara karşılık gelen event nesnelerini tutacak. static final Map _eventCache = {}; // Factory constructor factory FikoYTGlobalParameter( String name, { dynamic initialValue, }) { // Eğer aynı isimde bir event zaten varsa, onu döndür if (_eventCache.containsKey(name)) { return _eventCache[name]! as FikoYTGlobalParameter; } // Yeni event oluşturuluyorsa, eventCache'e ekle final newEvent = FikoYTGlobalParameter._internal( name, initialValue: initialValue, ); _eventCache[name] = newEvent; return newEvent; } // Özel constructor FikoYTGlobalParameter._internal( this.name, { dynamic initialValue, }) { if (initialValue is Function) { _value = Rx(initialValue()); } else { _value = Rx(initialValue ?? null as T); } } // Değeri Valuesi late final Rx _value; // Rx olarak değer tipi belirtiliyor. // Getter for value Rx get $value => _value; T get value => _value.value; // Setter for value set value(T newValue) { _value.value = newValue; _value.refresh(); // Değer değiştikçe yenileme } }