我有一个返回缓存系统类(伪代码)的工厂方法类:
class CacheFactory
{
public static function get($type) {
switch ($type) {
case 'memcache':
return new Memcache();
case 'redis':
return new Redis();
case 'default':
return new Void();
}
}
}
缓存类实现了简单的 get() 和 set() 方法(它使用定义通用方法的抽象类),这使我可以在需要时轻松切换缓存系统。正常使用会是这样的:
$cache = CacheFactory::get('redis');
$value = $cache->get('key');
...etc
我想有一个设置来启用/禁用缓存,但我不想在代码中添加条件,询问是否在任何地方都启用了缓存。所以我想返回一个实现抽象类方法的 Void() 对象,以便在禁用缓存时使用它,该类将如下所示:
class Void extends ACache
{
public function get(){};
public function set(){};
}
这是一个好方法吗?您认为如何在不在实际实现中添加条件的情况下处理启用/禁用设置的最佳方式?
谢谢!