<body>
<?php

//设计模式:工厂模式
/*
class YunSuan
{
    public $a;
    public $b;

    function Jia()
    {
        return ($this->a+$this->b);
    }
    function Jian()
    {
        return ($this->a-$this->b);
    }
    function Cheng()
    {
        return ($this->a*$this->b);
    }
    function Chu()
    {
        return ($this->a/$this->b);
    }
    function Yu()
    {
        return ($this->a%$this->b);
    }
}

$y = new YunSuan();
$y->a = 10;
$y->b = 5;

echo $y->Jia();*/

//造父类,用子类继承
class YunSuan
{
    public $a;
    public $b;

    function YunSuan()
    {
    }
}

//加法的子类
class Jia extends YunSuan
{
    function YunSuan()
    {
        return ($this->a+$this->b);
    }
}

//减法的子类
class Jian extends YunSuan
{
    function YunSuan()
    {
        return ($this->a-$this->b);
    }
}

$y = new Jian();

$y->a = 10;
$y->b = 5;

//echo $y->YunSuan();

//再优化,工厂类

class GongChang
{

    static function DuiXiang($f)
    {
        switch($f)
        {
            case "+":
                return new Jia();
                break;
            case "-":
                return new Jian();
                break;
            case "*":
                return new Cheng();
                break;
        }

    }
}

$r = GongChang::DuiXiang("-");
$r->a=10;
$r->b = 5;
echo $r->YunSuan();

/*

class Suan
{
    public $total;

    function Jia($a)
    {
        $this->total = $this->total+$a;
        return $this->total;
    }
    function Jian($a)
    {
        $this->total = $this->total-$a;
    }
}*/

?>
</body>
</html>

php 工厂模式的更多相关文章

  1. 23种设计模式--工厂模式-Factory Pattern

    一.工厂模式的介绍       工厂模式让我们相到的就是工厂,那么生活中的工厂是生产产品的,在代码中的工厂是生产实例的,在直白一点就是生产实例的类,代码中我们常用new关键字,那么这个new出来的实例 ...

  2. javascript工厂模式和构造函数模式创建对象

    一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创 ...

  3. PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)

    一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...

  4. PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)

    最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...

  5. 设计模式之工厂模式VS抽象工厂

    一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...

  6. 菜鸟理解的工厂模式(Factory Pattern)是什么样子的?

    直接开始说了,不浪费园友宝贵的时间! 什么是工厂模式? 在学习前,先问一下:"它是什么?". 工厂模式,它是项目里面常用的设计模式之一. 它是属于创建型模式,简单的理解创建型模式就 ...

  7. PHP 面向对象编程和设计模式 (3/5) - 单例模式和工厂模式

    PHP高级程序设计 学习笔记 2014.06.11 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容 ...

  8. 《JS设计模式笔记》构造函数和工厂模式创建对象

    工厂模式 function createPerson (name,age,job) { var o=new Object(); o.name=name; o.age=age; o.job=job; o ...

  9. 从接口、抽象类到工厂模式再到JVM来总结一些问题

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习! 涉及到的知识点总结如下: 为什么使用接口? 接口和抽象类的区别 简单工厂模式总结 Java中new和newInstance的区别 J ...

  10. C#设计模式之简单工厂模式(Simple Factory)

    1. 概述 简单工厂模式就是将一个类的实例化交给一个静态工厂来执行. 2. 使用频率 中 3. 模式结构 3.1 机构图 3.2 模式中的角色 Product:抽象类,把具体产品类公共的代码进行抽象和 ...

随机推荐

  1. LinuxMint配置Git(图文教程)

    1.生成秘钥(直接回车,秘钥存放路径看命令行信息) 2.打开秘钥,需要注意的是.ssh可能是隐藏的,这时需要Ctrl+H显示隐藏文件夹 3.复制秘钥,添加到GitHub(Settings), 4.添加 ...

  2. Code4App地址

    http://www.code4app.com/ 一个 ios 很多sample的网站

  3. python包下载地址

    https://pypi.python.org/pypi http://www.lfd.uci.edu/~gohlke/pythonlibs/ 当在线安装安装不了时,需要将安装包下载到本地,进行本地p ...

  4. 使用 SVG 动画实现弹性的页面元素效果

    Codrops 分享了一些给SVG元素加上弹性动画的灵感.实现的思路是把一个SVG元素整合成一个组件,然后从一个路径弹性动画到另一个.这种效果可以应用到像菜单,按钮或其它元素,使得交互更有趣,看起更原 ...

  5. java中 this 和super的用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自 ...

  6. 如何在UMG中上显示3D物体

    http://www.unrealchina.net/forum.php?mod=viewthread&tid=101548 个人认为可以使用关卡系统,搞个空关卡来做渲染比较好

  7. zookeeper节点Watch机制实例展示

    znode以某种方式发生变化时,“观察”(watch)机制可以让客户端得到通知.可以针对ZooKeeper服务的“操作”来设置观察,该服务的其他 操作可以触发观察. 实现Watcher,复写proce ...

  8. C# vs MySql

    MySqlHelper类 /// <summary> ///MySql操作类 /// </summary> public abstract class MySqlHelper ...

  9. github pages 添加godaddy的dns解析

    转自: http://andrewsturges.com/blog/jekyll/tutorial/2014/11/06/github-and-godaddy.html I own a custom ...

  10. 生成CSV文件后再将CSV文件导入到mysql

    1.生成CSV jar包:http://pan.baidu.com/s/1xIL26 String csvFilePath = "d:\\test.csv"; CsvWriter ...