• 自动加载类,设计模式:单例模式,工厂模式。


    //接口
    //关键字:interface
    //加载类:
    第一种方法:
    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";
    }
    
    $r = new Ren();
    
    echo $r->say();//输出Ren.class.php加载类表里的say类名。
        
    //设计模式
    //1.单例模式
    //类的计划生育
    //1.让该类在外界无法造对象
    //2.让外界可以造一个对象,做一个静态方法返回对象
    //3.在类里面通过静态变量控制返回对象只能是一个
    
    class Dog 
    {
        static $dx;   //存储对象
        public $test;
        
        private function __construct()
        {
            
        }
        
        static function DuiXiang()
        {
            if(empty(self::$dx))   //静态关键字self::
            {
                self::$dx = new Dog();//这句话他只执行一次
            }
            
            return self::$dx;   //返回dx
        }
        
        
    }
    
    
    $a = Dog::DuiXiang();
    
    $b = Dog::DuiXiang();
    $b->test="你好";
    
    var_dump($a);
    
    
    
    
    //工厂模式
    /*class YunSuan
    {
        public $a;
        public $b;
        
        function Jian()
        {
            return $this->a+$this->b;
        }
        function jian()
        {
            return $this->a-$this->b;
        }
    
    }
    */  //正常的一个运算类
    
    abstract class YuanSuan
    {
        public $a;
        public $b;
        
        function Suan()
        {
        }
    
    }
    
    class Jia extends YuanSuan
    {
        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;
        }
    }
    /*$j->a=10;
    $j->b=5;
    $j = new Cheng();
    echo $j->Suan();*/
    
    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();
  • 相关阅读:
    JS事件
    我刚知道的WAP app中meta的属性(转载)
    监控Tomcat解决方案(监控应用服务器系列文章分享)
    Java实现注册邮箱激活验证
    使用iScroll时,input等不能输入内容的解决方法(share)
    iScroll.js 用法参考 (share)
    Myeclipse常用快捷键
    ajax+json+Struts2实现list传递实例讲解
    JSTL的c:forEach标签(${status.index})
    JAVA导出pdf实例
  • 原文地址:https://www.cnblogs.com/zc290987034/p/6004532.html
Copyright © 2020-2023  润新知