面向对象编程,类切换

<?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文件会找到对应的类实例化。

时间: 2024-10-27 06:04:36

面向对象编程,类切换的相关文章

Python 面向对象编程——类和实例

1        面向对象编程 面向对象编程: 面向对象编程--Object OrientedProgramming OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消

面向对象编程——类(class)1

一.函数式编程 与 面向对象编程 def 函数名(参数): pass class 类名: def 函数名(self,参数): # self必填 pass z1 = 类名() # 这时,调用对象 z1,self参数即为 z1 例1: class bar: def foo(self,arg): print(self,arg) z1 = bar() print(z1) # <__main__.bar object at 0x0000019BC3088D30> z1.foo('wjz') # <

Day16:面向对象编程——类和对象

一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象.程

Day28:面向对象编程——类和对象

一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象.程

lua 面向对象编程类机制实现

lua no class It is a prototype based language. 在此语言中没有class关键字来创建类. 现代ES6, 已经添加class类. prototype based 语言没啥优势. lua 如何构建class机制? https://github.com/fanqingsong/oopclass.lua 提供lua的 Object Oriented Programing Class 实现: 比其他实现更加轻量 https://github.com/Yonab

OC面向对象编程-类的声明和对象的创建

一 OC类的声明和实现 1.接口的声明 @interface NewClassName: ParentClassName { 实例变量 ... } 方法的声明 ... @end 2.类的实现 @implementation NewClassName { 方法的实现 //code ... } @end

【Python】[面向对象编程] 类和实例

1.注:必须牢记类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”2.定义类通过class 关键字:class 后面跟着类名,类名通常都是大写开头,接着是(object),表示类是从哪里继承俩的,所有类都继承 自object. class Student(object): pass 3.通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去: class Student(object): def __init__(self, name, scor

面向对象编程(类的绑定方法与非绑定方法)

链接 https://www.cnblogs.com/vipchenwei/p/7126772.html 1.对象绑定方法 1.凡是类中的方法和函数,都是绑定给对象使用的: 2.绑定方法都有自动传值的功能.传递进去的值,就是对象本身. 3.如果类想调用绑定方法,就必须遵循函数的参数规则,有几个参数,就必须传递几个参数. 2.类的绑定方法 类中方法默认都是绑定给对象使用,当对象调用绑定方法时,会自动将对象作为第一个参数传递进去:而类来调用,则必须遵循函数参数一一对应的规则,有几个参数,就必须传递几

python学习day11 面向对象编程 类和实例

class Student(object): #class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的.通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类. def __init__(self,name,score): #通过定义一个特殊的__init__方法,在创建实例的时候,就把类的name,score等属性绑上去,__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__

面向对象编程——类(class)2

一.类成员修饰符 公共成员:可以在类的外部访问到.我们之前接触到的都是公共成员 私有成员:只能在该类的内部才能直接访问到的(子类也不能直接访问):在外部,可以通过间接方法才能取得. 以字段(普通字段和静态字段相同)为例,开头加__(双下划线)使字段变为私有字段:方法也一样,方法名前面加__(双下划线)即可. class db: def __init__(self,ip,username,passwd): self.__ip = ip self.__username = username self