<?php
/**
 * 【简单工厂】
 * 之前 02.php 面向接口开发,客户端还是知道了服务器端的所有类。
 * 现在想让客户端只知道一个类,就用工厂。
 */

header("Content-type: text/html; charset=utf-8");

/*共同接口--连接数据库*/
interface db{
    function conn();
}

/*服务端开发,面向上面的接口。(不知道将会被谁调用)*/
class dbmysql implements db{
    public function conn(){
        echo '03-连接上了mysql<br>';
    }
}
class dbsqlite implements db{
    public function conn(){
        echo '03-连接上了sqlite<br>';
    }
}

//定义一个工厂类
class Factory{
    public static function createDB($type){
        if($type=='mysql'){
            $db = new dbmysql();
        }elseif($type=='sqlite'){
            $db = new dbsqlite();
        }else{
            echo 'Error...';
        }
        return $db->conn();
    }
}

/* 客户端开发,现在客户端不知道服务端到底有哪些类名。
 * 只知道对方开放了一个 factory::createDB 方法,
 * 并且方法允许传递数据库名称
 */
Factory::createDB('mysql'); //输出“连接上了mysql”
Factory::createDB('sqlite'); //输出“连接上了sqlite”

【PHP设计模式 03_JianDanGongChang.php】 简单工厂的更多相关文章

  1. java设计模式-----1、简单工厂模式

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例,简单来说 ...

  2. C#设计模式系列:简单工厂模式(Simple Factory)

    1. 简单工厂模式简介 1.1 定义 简单工厂模式定义一个Factory类,可以根据参数的不同返回不同类的实例,被创建的实例通常有共同的父类. 简单工厂模式只需要一个Factory类. 简单工厂模式又 ...

  3. Net设计模式实例之简单工厂模式(Simple Factory Pattern)

    一.简单工厂模式简介(Bref Introduction) 简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类, ...

  4. Java设计模式2:简单工厂模式

    简单工厂模式 简单工厂模式是类的创建模式,又叫做静态工厂方法模式.简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例. 为什么要使用简单工厂模式 原因很简单:解耦. A对象如果要调用B对象,最简单 ...

  5. 大话设计模式C++版——简单工厂模式

    简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器. 1.抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程) class I ...

  6. IOS设计模式浅析之简单工厂模式(SimpleFactory)

    概述 首先说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工厂方法模式,是工厂方法模式的特殊实现.这里对简单工厂模式进行介绍,是为本系列后面的工厂方法和抽象工厂模式做一个引子. 定义 ...

  7. 【C++深入浅出】设计模式学习之简单工厂

    看大话设计模式中大牛对小菜的精辟点评,也写了一个计算器程序,并跟着点评一路改良,还是不过瘾,应用了类模板和异常捕捉机制重写了程序. 本文不能算干货,恰当的比方是饭前甜点,吃一口有点味.有点意思,总归太 ...

  8. C#设计模式之二简单工厂模式(过渡模式)

    一.引言 之所以写这个系列,是了为了自己更好的理解设计模式,也为新手提供一些帮助,我都是用最简单的.最生活化的实例来说明.在上一篇文章中讲解了单例模式,今天就给大家讲一个比较简单的模式--简单工厂模式 ...

  9. 设计模式笔记:简单工厂模式(Simple Factory)

    1. 简单工厂模式简介 1.1 定义 简单工厂模式:定义一个Factory类,可以根据参数的不同返回不同类的实例,被创建的实例通常有共同的父类. 简单工厂模式:只需要一个Factory类. 简单工厂模 ...

  10. Java设计模式学习记录-简单工厂模式、工厂方法模式

    前言 之前介绍了设计模式的原则和分类等概述.今天开启设计模式的学习,首先要介绍的就是工厂模式,在介绍工厂模式前会先介绍一下简单工厂模式,这样由浅入深来介绍. 简单工厂模式 做法:创建一个工厂(方法或类 ...

随机推荐

  1. Android ListView自定义Adapter使用误区

    参考博客:BaseAdapter中重写getview的心得以及发现convertView回收的机制 使用自定义的BaseAdapter实现LIstView的展示 由于Recycler(反复循环器)的机 ...

  2. shell中引用其他脚本的方法

    在Shell中引用其他脚本的方法是source   filename.sh 或    .    filename.sh 注意:      .   和   filename.sh之间必须有空格

  3. PostgreSQL 对字段大小写敏感

    缘起 iso=> \d+ test; Table "public.test" Column | Type | Modifiers | Storage | Descriptio ...

  4. RDIFramework.NET — 基于.NET的快速信息化系统开发框架 - 5.3 数据库连接管理模块

    RDIFramework.NET — 基于.NET的快速信息化系统开发框架 5.3 数据库连接管理模块 5.3 数据库连接管理模块 我们经常可以看到很多软件直接把数据库连接字符串放在软件执行目录下的配 ...

  5. 线段树 Interval Tree

    一.线段树 线段树既是线段也是树,并且是一棵二叉树,每个结点是一条线段,每条线段的左右儿子线段分别是该线段的左半和右半区间,递归定义之后就是一棵线段树. 例题:给定N条线段,{[2, 5], [4, ...

  6. PostgreSQL Replication之第十五章 与Walbouncer 一起工作

    与Walbouncer 一起工作 在本书的最后一章,将引导您通向2014年发布的一个工具,称为walbouncer.本书中的大多数技巧说明了如何复制整个数据库实例,如何分片,等等.在最后一章,是关于w ...

  7. jsp页面指令

    JSP中共有三个指令: (1)page: 用于定义JSP文件中的全局属性 (2)include: 用于在JSP页面中包含另外一个文件的内容 (3)taglib: 此指令能够让用户自定义新的标签 第三个 ...

  8. android studio ADB not responding.

    打开cmd    输入  netstat -aon|findstr "5037"   找到谁在占用5037端口 记住他的pid. 例如pid为 2028 输入  taskkill ...

  9. Android 测试Service的生命周期

    package com.example.myapp4; import android.support.v7.app.ActionBarActivity; import android.content. ...

  10. Repeater 时间格式化

    Repeater 时间格式化   <%# Eval("AboutDate","{0:yyyy-MM-dd hh:mm:ss}")%> 个人认为最好用 ...