Nasıl yapılır?
Ben birçok alt sınıflara üst bir model sınıf var ve bu model bir veritabanı bağlantısı ve bir önbelleğe alma mekanizması bağlıdır.
Zahmetli almaya başlıyor Şimdi, bu nerede: Ben her nesne örneği veya alışmakta ne kadar üzerinde hiçbir kontrole sahip, ama alt sınıflar tarafından alışmak yöntemler üzerinde kontrole sahip.
Şu anda ben gibi, bağımlılık enjeksiyon için statik yöntemlerini ve özelliklerini kullanarak başvurdular:
class Model { private static $database_adapter; private static $cache_adapter; public static function setDatabaseAdapter(IDatabaseAdapter $databaseAdapter) { self::$databaseAdapter = $databaseAdapter; } public static function setCacheAdapter(ICacheAdapter $cacheAdapter) { self::$cacheAdapter = $cacheAdapter; } }
Iyi çalıştı, ancak (tüm modeller için küresel bir devlet oluşturur) kirli hissediyor hangi.
Ben fabrika desen kabul var, ama bu alt-sınıflar (nasıl ben bunu yapıcısında parametrelerin değişken sayısı ile bir nesne örneğini mi?) Gelen örnekleme kontrolünü kaldırır.
Şimdi ben bir kayıp am. Herhangi bir yardım mutluluk duyacağız.