В PHP, если я создаю одноэлементный метод для примерно 5 различных классов кэширования (memcache, apc, session, file, cookie)
Затем у меня есть основной класс кэша, который в основном маршрутизирует мою set () и получает() методы для соответствующего класса кэширования.Теперь допустим, что мне нужно использовать сеанс, cookie, memcache и кэш файлов на одной странице.Мой класс основного кэша должен был бы тогда создать новый экземпляр 1 раз для каждого из этих типов кэша, используя синглтон.
Так что мне бы пришлось многократно вызывать мои методы синглтона на странице, если бы я должен былустановить / получить 30 различных вызовов кеша на 1 странице, это вызовет метод синглтона много раз.
Мне интересно, будет ли это плохой практикой или не очень хорошо продолжать вызывать мой синглтон снова и сновастраница?
ОБНОВЛЕНИЕ
Ниже приведен код, который я начал, в нем вы можете получить лучший пример того, что я пытаюсь сделать ..Если бы я добавил что-то в memcache 40 раз на странице, он вызвал бы метод singleton для класса ym memcache 40 раз
/**
* Set a key/value to cache system.
*
* @param string type of cache to store with
* @param string|array keys, or array of values
* @param mixed value (if keys is not an array)
* @return void
*/
public function set($type, $keys, $value = FALSE, $options_arr)
{
if (empty($keys))
return FALSE;
if ( ! is_array($keys))
{
$keys = array($keys => $val);
}
// Pick our Cache system to use
switch ($type) {
case "memcache":
// Cache item to memcache
$this->memcache = Memcache::getInstance();
$this->memcache->get($keys, $value, $options);
break;
case "apc":
// Cache item to APC
$this->apc = APC::getInstance();
$this->apc->get($keys, $value, $options);
break;
case "session":
// Cache item to Sessions
foreach ($keys as $key => $val)
{
// Set the key
$_SESSION[$key] = $val;
}
break;
case "cookie":
// Cache item to Cookie
break;
case "file":
// Cache item to File
break;
}
}