• php 设计模式 例子


    加载类:
    include("./Ren.class.php");
    include "./Ren.class.php";

    require("./Ren.class.php");
    require "./Ren.class.php";

    require_once("./Ren.class.php");
    require_once "./Ren.class.php";

    自动加载类的方法
    所有的类文件要放在同一个目录下
    所有类文件的命名规则一致
    /*
    function __autoload($classname)
    {
     require $classname.".class.php";
    }


    设计模式
    //1.单例模式
    //类的计划生育
    //1.让该类在外界无法造对象
    //2.让外界可以造一个对象,做一个静态方法返回对象
    //3.在类里面通过静态变量控制返回对象只能是一个

    /*class Dog
    {
     static $dx;
     public $test;
     
     private function __construct()
     {
      
     }
     
     static function DuiXiang()              //返回的永远是同一个对象
     {
     
      
      if(empty(self::$dx))
      {
       self::$dx = new Dog();
      }
      
      return self::$dx;
     }
    }

    $a = Dog::DuiXiang();


    $b = Dog::DuiXiang();
    $b->test="hello";              //a和b指向的是同一个对象


    var_dump($a);*/             //所以a的public属性text的值也是hello

    工厂模式
    /*class YunSuan
    {
     public $a;
     public $b;
     
     function Jia()
     {
      return $a+$b;
     }
     function Jian()
     {
      return $a-$b;
     }
    }*/

    abstract class YuanSuan                       //定义抽象类 运算
    {
     public $a;
     public $b;
     
     function Suan()
     {
     }
    }

    class Jia extends YuanSuan             //jia jian cheng 皆为运算的具体实现
    {
     function Suan()
     {
      return $this->a+$this->b;
     }
    }

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

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

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


    $r = GongChang::ShengChan("*");
    $r->a=10;
    $r->b=5;
    echo $r->Suan();

  • 相关阅读:
    模块入门–搜索
    [hadoop源码阅读][2]package结构
    [hadoop源码阅读][8]datanodeDataStorage
    [hadoop源码阅读][4]org.apache.hadoop.io
    [hadoop源码阅读][6]org.apache.hadoop.ipcprotocol和心跳分析
    [hadoop源码阅读][1]源码目录结构
    [hadoop源码阅读][4]org.apache.hadoop.io.compress系列3使用压缩
    [hadoop源码阅读][3]新旧api区别
    [hadoop源码阅读][6]org.apache.hadoop.ipcipc总体结构和RPC
    [hadoop源码阅读][8]datanodeFSDataset
  • 原文地址:https://www.cnblogs.com/bujianchenxi/p/6041504.html
Copyright © 2020-2023  润新知