zoukankan      html  css  js  c++  java
  • php面向对象加载类、常用设计模式

    加载类:
    
    include("./Ren.class.php");
    include "./Ren.class.php";           用此方法的时候include后面要加空格
    
    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();
    设计模式
    
    单例模式:类的计划生育
    1.让该类在外界无法造对象
    2.让外界可以造一个对象,做一个静态方法返回对象
    3.在类里面通过静态变量控制返回对象只能是一个
    
    class Dog
    {
        static $dx;
        public $test;
        
        private function __construct()
        {
    
        }
    
        static function DuiXiang()
        {
            //return new Dog();
            if(empty(self::$dx))              静态要加self
            {
                self::$dx=new Dog();
            }
            return self::$dx;
        }
    }
    
    $a=Dog::DuiXiang();
    
    $b=Dog::DuiXiang();
    $b->test="hello";
    
    var_dump($a);
    工厂模式:
    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
    {
        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 = new Cheng();
    $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();
  • 相关阅读:
    maven打包部署到私服
    RedisUtil工具类
    使用Spring+Junit4进行测试
    SpringMVC + MyBatis + Mysql + Redis(作为二级缓存) 配置
    Spring缓存注解@Cache使用
    Spring集成Redis使用注解
    Redis入门学习
    对年轻技术员的告诫
    WebMagic写的网络爬虫
    Jquery学习笔记(6)--jquery中attr和prop的区别【精辟】
  • 原文地址:https://www.cnblogs.com/u1020641/p/6004395.html
Copyright © 2011-2022 走看看