<?php
interface?Cache
{
????public?function?set($key,?$value);
????public?function?get($key);
????public?function?delete($key);
}
class?Memcache?implements?Cache
{
????public?function?set($key,?$value)
????{
????????//?TODO:?Implement?set()?method.
????????echo?$key?.?'-'?.?$value;
????}
????public?function?get($key)
????{
????????//?TODO:?Implement?get()?method.
????????echo?$key;
????}
????public?function?delete($key)
????{
????????//?TODO:?Implement?delete()?method.
????????echo?$key;
????}
}
class?CacheFactory
{
????public?static?function?factory(Cache?$cache)
????{
????????return?$cache;
????}
}
$cache?=?CacheFactory::factory(new?Memcache());
$cache->set('nihao',?123);
2020-01-01
是這樣的,工廠設計模式只是讓代碼更容易擴展和維護,比如你緩存要修改成Redis,只用在加一個Redis類,里面實現set、get、delete方法,然后修改39行代碼為?
$cache
?=?CacheFactory::factory(
new
?Redis()),對于代碼中調用緩存的地方就不用所有地方去修改了。