介绍php实现工厂模式的方法

    技术2022-07-11  78

    介绍

    看到工厂模式最白话的介绍就是,工厂嘛,肯定不让进,你把原料送到门口,再另一个门口等着拿成品就行。

    在实际引用中,以缓存为例,缓存可以用redis,mysql,mamecache等存储,存储的容器不同,但是使用方法相同,

    都是set,get,del这些,这就是他们的共性,在代码中用接口(interface)实现。接口嘛,开发规法、就是让各个平级的类有公共的方法。

    上代码

    <?php namesapce Factory\CacheFactory; interface CacheFactory{ public function get($name); public function set($name, $value); public function rm($name); public function clear(); } class MysqlCache implements CacheFactory{ public function get($name) { // TODO: Implement get() method. } public function set($name, $value) { // TODO: Implement set() method. } public function rm($name) { // TODO: Implement rm() method. } public function clear() { // TODO: Implement clear() method. } } class RedisCache implements CacheFactory{ public function get($name) { // TODO: Implement get() method. } public function set($name, $value) { // TODO: Implement set() method. } public function rm($name) { // TODO: Implement rm() method. } public function clear() { // TODO: Implement clear() method. } } class cacheFactory{ static public function factory($class_name){ return new $class_name(); } } $obj = cacheFactory::factory('redis'); $obj->get('list1');

    总结

    以上代码就是实现mysql实现缓存,如果redis也是相同,接口内的方法都需要实现,在框架加载时会根据所设置的缓存驱动名而选择实现那个类,这就是用php实现的工厂模式。

    Processed: 0.009, SQL: 9