外围滚球手机app:简单工厂模式

浏览:269 发布日期:2018/10/09 分类:业务逻辑 关键字: php设计模式
<足球外围网 id="eb7db7ce4f5ecb846"> <足球外围网 id="ea0cb5324242b850e"> 简单工厂模式,用于需求不明确(不知道有多少操作)时候可以用的设计模式,例如加减乘除

遇到需求暂不明确(不知道有多少操作)的时候用到的设计模式。

首先一个操作类型抽象类用于获值赋值。<?php

    /**
     * Created by PhpStorm.
     * User: antion
     * Date: 2018/10/9
     * Time: 11:34
     * Var:操作类型抽象类
     */
    abstract class Operation
    {
        protected $numberA = 0;
        protected $numberB = 0;

        abstract function getResult();

        public function setNumberA($number)
        {
            $this->numberA = $number;
        }

        public function setNumberB($number)
        {
            $this->numberB = $number;
        }

    }
在之后是操作方法,比如加法。<?php

    /**
     * Created by PhpStorm.
     * User: antion
     * Date: 2018/10/9
     * Time: 11:38
     * Var:四则运算加法
     */
    class Add extends Operation
    {
        public function getResult()
        {
            return $this->numberA + $this->numberB;
        }
    }
这时候正常情况是直接写一个调用方法用它,但是我们的需求暂时不明确,所以要有一个统筹所有操作的类。也就是工厂类<?php

    /**
     * Created by PhpStorm.
     * User: antion
     * Date: 2018/10/9
     * Time: 11:40
     * Var:工厂类.
     */
    class Factory
    {
        public function create($operate)
        {
            switch ($operate) {
                case '+':
                    $result = new Add();
                    break;
                default:
                    throw new \InvalidArgumentException('暂不支持的运算');
            }
            return $result;
        }
    }
这时候在写调用方法 就很清晰明了了。<?php
    /**
     * Created by PhpStorm.
     * User: antion
     * Date: 2018/10/9
     * Time: 11:36
     * Var:客户端
     */
    include_once "Operation.php";
    include_once "Factory.php";
    include_once "Add.php";

    class Client
    {
        public function test()
        {
            $factory = new Factory();
            $operation = $factory->create('+');
            $operation->setNumberA(1);
            $operation->setNumberB(2);
            $result = $operation->getResult();
            echo $result;
        }
    }

    $client = new Client();
    $client->test();
<足球外围网 id="ad196de4c105c1d8be">
<足球外围网 id="ad6b7d22ed07ed248d">
评论( 相关
后面还有条评论,点击查看>>
<足球外围网 id="e997c2acdc76d56ad">
免费白菜 免费彩金 彩金免费领 免费白菜网 免费彩金送 免费彩金网 免费给彩金 免费领彩金 免费送白菜