php-工厂模式解析

关于工厂模式,首先要了解的就是多态这个概念:“多态是指在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为”,这句话是我在其他博客看到,他已经概括的很好了,我就直接抄袭了。哈哈

通常简单工厂模式有一个关键的构造,即一般被命名为factory的静态方法。这个静态方法可以接受任意数量的参数,并且必须返回一个对象。

<?php
class Example
{
    //带参数的工厂方法
    public static function factory($type)
    {
        if (include_once ‘Drivers/‘ . $type . ‘.php‘) {
            $classname = ‘Driver_‘ . $type;
            return new $classname;
        } else {
            throw new Exception(‘Driver not found‘);
        }
    }
}
// 实例化mysql类
$mysql = Example::factory(‘MySQL‘);
// 实例化sqlite类
$sqlite = Example::factory(‘SQLite‘);
?>

  Q:什么情况下使用工厂模式呢?

  A:使用类不确定的情况下!

时间: 2024-10-06 00:10:40

php-工厂模式解析的相关文章

python简单工厂模式解析

下面考虑<大话设计模式>中的一个例子: 题目:用任意一种面向对象语言实现一个计算器控制台程序.要求输入两个数和运算符号,得到结果. 题目分析: 程序应该做到:(1)可维护:(2)可复用:(3)可扩展:(4)灵活性好.可维护:就是说代码一处更改,不能产生连锁反应,不能影响其他地方.可复用:尽量减少重复性代码.可扩展:如果要扩展新的功能.新的业务,则只需要增加新的类就好了,不对已有的类和逻辑产生影响.插拔式的应用. 面向对象要点:面向对象三大特性:封装.继承.多态.通过封装.继承.多态把程序耦合降

研磨设计模式解析及python代码实现——(一)简单工厂模式

最近在学设计模式,正巧书之前学了些python,但用的还不是很成熟.<研磨设计模式>书上只给了java代码,本着以练手为目标,我照着书上打了一遍java代码,在仔细体会其思想后,将其写成了python的代码.有不对的地方希望各位批评指正~ 具体原理不多做介绍,具体可以参考http://chjavach.iteye.com的博客,或者<研磨设计模式>的书. 一.背景介绍 接口思想: 众所周知,面向对象语言最大的特点便是封装,继承,多态这三个概念.而像Java等面向对象语言最核心的思想

网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档

小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心:通过该项目,我们对业务流程有一个整体把控.对继承和多态有深入的了解 下面是类图: 主界面图: 核心思路: 1   1.首先在频道管理类ChannelManager中写一个加载所有频道方法LoadAllChannel; 2   3        该方法作用读取FullChannels.xml文件,并且

由XML解析学习工厂模式

代码段1: startupData = new StartupData(); /* 设定自定义的MyHandler给XMLReader */ StartupXMLHandler startupDataXMLHandler = new StartupXMLHandler(); startupDataXMLHandler.setData(startupData); /* 产生SAXParser对象 */            SAXParserFactory spf = SAXParserFacto

设计模式解析之工厂模式 (一)

工厂模式在"创造模式"中是比较难理解的,困难之处并不在于工厂模式的定义本身,困惑的地方在于为什么要使用工厂模式,或者说是必须使用工厂的理由. 工厂模式的定义 Define an interface for creating an object, but let the classes that implement the interface decide which class to instantiate. The Factory method lets a class defer

C#简单工厂模式和单列设计模式潜要解析

简单工厂设计模式,又叫做静态工厂方法(Static Factory Method)模式,就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例. 简单工厂模式是工厂模式家族中最简单实用的模式.简单工厂设计模式是针对于创建类的对象的. 一般,简单工厂涉及到三个 角色/类: 一.工厂类:工厂类是简单工厂的核心,通过工厂类可以分别出的客户需求,在调用其子类. 二.抽象产品类:这个类是由工厂方法模式所创建的对象的父类,一般由接口和抽象类实现. 三.具体产品类:工厂方法模式所创建的任何对象都是这个角色

设计模式解析(二)——抽象工厂模式

对抽象工厂模式的理解,主要问题在与工厂模式的区别 仅就定义图和继承关系来看,二者基本上没有区别 但两个模式的定义给出了非常清晰的解释,简单的说,他们所关注的问题层次完全不同 抽象工厂的定义 为创建一组相关性目标实例提供接口而无须指定具体目标类 (Provide an interface for creating families of related or dependent objects without specifying their concrete classes.) 结构示例图 工厂

java设计模型 解析工厂模式、proxy-agent模式、templete模式

1.Factory Design pattern 工厂设计模式的优点 (1)工厂设计模式提供了接口而不是实现的代码方法. (2)工厂模式从客户端代码中删除实际实现类的实例化.工厂模式使我们的代码更健壮,耦合更少,易于扩展.例如,我们可以轻松更改PC类实现,因为客户端程序不知道这一点. (3)工厂模式通过继承提供实现和客户端类之间的抽象. JDK中工厂设计模式实列 java.util.Calendar,ResourceBundle和NumberFormat getInstance()方法使用Fac

设计模式——介绍与工厂模式(扁平管理模式VS职业经理人模式)

本文主要对设计模式进行大概解说.特别是对工厂模式进行简明的解析: 一.设计模式的分类 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.訪问者模式.中介者模式.解释器模式. 事实上还有两类:并发型模式和线程池模式. 二.设计模式的六大原则 1.开闭原则(Op

从基础知识到重写Spring的Bean工厂中学习java的工厂模式

1.静态工厂模式其他对象不能直接通过new得到某个类,而是通过调用getInstance()方法得到该类的对象这样,就可以控制类的产生过程.顺带提一下单例模式和多例模式:  单例模式是指控制其他对象获得该对象永远只有同一个对象  而多例模式则是根据需要从某个具体集合中获取所需的对象 1 import java.util.ArrayList; 2 import java.util.List; 3 4 5 public class Car implements Moveable{ 6 private