面向对象编程,类切换

简介:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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();
}
 
 
?>

然后下面是子类

1
2
3
4
5
6
7
8
9
10
11
12
class XmlParamHandle extends ParamHdndle{
    function write(){}
 
    function read(){}
}
 
 
class TextParamHandle extends ParamHdndle{
    function write(){}
 
    function read(){}
}

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

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

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

本文转自  陈小龙哈   51CTO博客,原文链接:http://blog.51cto.com/chenxiaolong/1702235



相关文章
|
1月前
|
设计模式 缓存 安全
【设计模式】单例模式:确保类只有一个实例
【设计模式】单例模式:确保类只有一个实例
23 0
|
9天前
|
编译器 C语言 C++
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
|
29天前
|
算法 编译器 C语言
【C/C++ 编程题 01】用C++设计一个不能被继承的类
【C/C++ 编程题 01】用C++设计一个不能被继承的类
22 0
|
3月前
掌握面向对象程序设计继承和派生机制的概念
掌握面向对象程序设计继承和派生机制的概念
14 0
|
8月前
|
安全 Java 编译器
C++ 面向对象三大特性——继承
面向对象三大特性的,封装,继承,多态,今天我们研究研究C++的继承。
|
9月前
|
设计模式 程序员 编译器
【大话设计模式】封装 继承 多态
【大话设计模式】封装 继承 多态
|
10月前
|
设计模式 Java 开发工具
设计模式之空对象模式详解 附Java源码实例
设计模式之空对象模式详解 附Java源码实例
80 0
|
10月前
|
设计模式 SQL Java
设计模式之 解释器模式 Java实例代码演示
设计模式之 解释器模式 Java实例代码演示
58 0
|
JavaScript
面向对象之继承的那几种模式
面向对象的三大特征、封装、继承、多肽,js中同样有这三种特征,js是一门弱语言,俗称解释性语言,通常来说比起高级语言,他没有严格的类型约束,为了让代码写得更健壮,维护性更强,因此有了ts约束,而继承是能让代码更加通用,让你的代码更加的抽象。
|
安全 Java 编译器
深挖⾯向对象编程三⼤特性 --封装、继承、多态
深挖⾯向对象编程三⼤特性 --封装、继承、多态
深挖⾯向对象编程三⼤特性 --封装、继承、多态