zoukankan      html  css  js  c++  java
  • 2016年12月15日 工厂模式,单例模式

    //1.单例模式
    //目的:为了控制对象的数量(只能够有一个,相当于类的计划生育)
    //做法
    //1.将类的构造函数做成私有的
    //2.在类里面做了一个公有的函数来造对象
    //3.将该函数变为静态的
    //4.在函数里面加控制

    class Ren
    {
    public $name;

    //成员变量用来存储该对象
    static public $dx;

    private function __construct()
    {

    }

    static function DuiXiang()
    {
    if(empty(self::$dx))
    {
    self::$dx = new Ren();
    }

    return self::$dx;
    }
    }

    $r = Ren::DuiXiang();
    $r->name = "张三";

    $r1 = Ren::DuiXiang();
    $r1->name = "李四";

    var_dump($r);


    ?>

    <?php

    //工厂模式
    abstract class YunSuan
    {
    public $a;
    public $b;

    function Suan()
    {
    }
    }


    class Jia extends YunSuan
    {
    function Suan()
    {
    return $this->a+$this->b;
    }
    }

    class Jian extends YunSuan
    {
    function Suan()
    {
    return $this->a-$this->b;
    }
    }

    class Cheng extends YunSuan
    {
    function Suan()
    {
    return $this->a*$this->b;
    }
    }

    //做一个工厂类
    class GongChang
    {
    static function ShengChan($fuhao)
    {
    switch($fuhao)
    {
    case "+":
    return new Jia();
    break;
    case "-":
    return new Jian();
    break;
    case "*":
    return new Cheng();
    break;
    }
    }
    }

    //算加法
    $suan = GongChang::ShengChan("*");
    $suan->a = 10;
    $suan->b = 5;
    echo $suan->Suan();

    ?>

  • 相关阅读:
    第一课:数据库介绍篇
    爬虫day03 cast
    python excel
    爬虫 cast_day05_多进程_多线程_协程_selenium的使用
    进程_线程_协程回顾!
    进程_线程_协程回顾 2!
    day 06 爬虫
    看正月点灯笼老师的笔记 —动态规划2.1
    动态规划——放苹果

  • 原文地址:https://www.cnblogs.com/F4natasy/p/6186859.html
Copyright © 2011-2022 走看看