php抽象类和抽象方法
2012-04-11 20:05
211 查看
在进行一个大网站开发时,我们会碰到这种情况(我们调用同样的方法名,但是想实现不同的效果。),为了解决这种情况可以使用抽象类来解决。
举个例子:在某个网站中涉及到缓存,首先一部分数据我想以缓存文件的形式保存到服务器上,而另一部分数据我只想是以key-value的形式保存到服务器上。
如果按平常的思路来解决问题:
1、定义生成缓存文件的类:
2、定义缓存类
3、我们定义一个抽象类
举个例子:在某个网站中涉及到缓存,首先一部分数据我想以缓存文件的形式保存到服务器上,而另一部分数据我只想是以key-value的形式保存到服务器上。
如果按平常的思路来解决问题:
1、定义生成缓存文件的类:
class FileCache(){ public function readCache(){ } } // 调用读取缓存文件的数据并得到结果 $read = new FileCache(); $read ->readCache();
2、定义缓存类
class MemCache(){ public function readCache(){ } } //调用读取缓存文件的数据并得到结果 $read = new MemCache(); $read ->readCache();总结:我们在每次调用不同的方法时,都要对应的实例化相应类。
3、我们定义一个抽象类
abstract class Cache(){ private static $cacheArr; //利用反射进行类的实例化 static function creatCache($name){ $cacheClass = new ReflectionClass ($name ); self::$cacheArr[$name] = $cacheClass->newInstance(); return self::$cacheArr[$name]; } //定义抽象方法,没有实体 abstract function readCache($key, $group = null, $outTime = 0); class FileCache extends Cache(){ //方法实体 public function readCache(){ } } class MemCache extends Cache(){ //方法实体 public function readCache(){ } } //这样我们调用时 $name = 'File'; $cacheobj = Cache::creatCache($name); $cacheobj->readCache('userdata');总结:这样会省略大部分的代码,提高了代码的重用性
相关文章推荐
- PHP5.0对象模型探索之抽象方法和抽象类
- PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
- PHP抽象类和抽象方法
- php面向对象(OOP)—抽象方法和抽象类
- php面向对象全攻略 (十二) 抽象方法和抽象类
- PHP5.0对象模型探索之抽象方法和抽象类
- Php抽象类和抽象方法
- PHP中抽象类和抽象方法概念与用法分析
- PHP5.0对象模型探索之抽象方法和抽象类
- PHP 对象 抽象方法和抽象类 abstract 接口iinterface
- PHP中抽象类和抽象方法概念与用法分析
- PHP面向对象基础概念(抽象方法和抽象类)
- PHP5.0对象模型探索之抽象方法和抽象类
- php抽象方法和抽象类实例分析
- PHP5.0对象模型探索之抽象方法和抽象类
- PHP面向对象(OOP):抽象方法和抽象类(abstract)
- PHP抽象类和抽象方法
- php抽象方法和抽象类实例分析
- PHP5.0对象模型探索之抽象方法和抽象类
- PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)