zoukankan      html  css  js  c++  java
  • PHP设计模式 单例模式与工厂模式

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

    class Cat{
    public $name;

    private function __construct()
    {
    }

    static $temp;
    static function new_ob(){
    if(empty(self::$temp)){
    self::$temp = new Cat();
    }
    return self::$temp;
    }

    function speak(){
    return"喵喵喵喵喵";
    }
    }

    $mao = Cat::new_ob();
    $mao2 = Cat::new_ob();

    $mao->name = "abc";
    echo $mao2->name;



    //$mao;
    //if(empty($mao)){
    // $mao = new Cat();
    //}
    //
    //$xxx = $mao;



    //工厂模式
    //class Jsq
    //{
    // public $a;
    // public $b;
    //
    // public function jiafa(){
    // return $this->a + $this->b;
    // }
    //}

    abstract class Jsq{
    public $a;
    public $b;
    function yunsuan(){

    }
    }

    class Jiafa extends Jsq{
    function yunsuan(){
    return $this->a + $this->b;
    }
    }
    class Jianfa extends Jsq{
    function yunsuan(){
    return $this->a - $this->b;
    }
    }
    //$j1 = new jiafa();
    //$j1->a = 1;
    //$j1->b = 2;
    //$j1->yunsuan();

    class Factory{
    static function creat($x){
    switch ($x){
    case "+":
    return new Jiafa();
    break;
    case "-": return new Jianfa(); break; } }}$jf = Factory::creat("+");$jf->a = 1;$jf->b = 2;echo $jf->yunsuan();
  • 相关阅读:
    [ZJOI2006]书架
    [NOI2005]维护数列
    Python 最佳实践
    python中使用多继承
    python 抽象类、抽象方法的实现
    30个有关Python的小技巧
    一行 Python 实现并行化 -- 日常多线程操作的新思路
    python日志模块logging
    在Python中怎么表达True
    有趣的库:pipe(类似linux | 管道)库
  • 原文地址:https://www.cnblogs.com/little-rock/p/7682589.html
Copyright © 2011-2022 走看看