码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象编程,类切换

时间:2015-10-13 01:50:38      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:类实例化

<?php
abstract class ParamHandler{
	protected $source;
	protected $param = array();

	function __construct($source) {
		$this->source = $source;
	}

	function addParam($key,$val) {
		$this->params[‘$key‘] = $val;
	}

	function getAllParams() {
		return $this->params;
	}

	static function getInstance($filename){     //用来获取子类实例,文件类型多时,只                                                    //需在这里加上if语句,然后对应写上子类
        if (preg_match("/\.xml$/i", $filename)) {
        	return new XmlParamHandle($filename);
        }
        return new TextParamHandler($filename);
	}

	abstract function write();  //保证子类实现这两个方法
	abstract function read();
}


?>

然后下面是子类

class XmlParamHandle extends ParamHdndle{
	function write(){}

	function read(){}
}


class TextParamHandle extends ParamHdndle{
	function write(){}

	function read(){}
}

这样实例化的时候可以这样子

$test = ParamHandler::getInstance("./params.xml");

这样根据传入的params.xml文件会找到对应的类实例化。

面向对象编程,类切换

标签:类实例化

原文地址:http://chenxiaolong.blog.51cto.com/8786841/1702235

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!