工厂方法空对象

时间:2014-04-13 01:57:00

标签: oop design-patterns factory-method

我有一个工厂方法类,它返回一个缓存系统类(伪代码):

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(){};
}

这会是一个好方法吗?在实际实现中如何在不添加条件的情况下处理启用/禁用设置的最佳方法是什么?

谢谢!

0 个答案:

没有答案