成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

簡(jiǎn)單工廠模式

liaosilzu2007 / 2921人閱讀

摘要:簡(jiǎn)單工廠模式書(shū)寫(xiě)計(jì)算器小程序?qū)崿F(xiàn)簡(jiǎn)單工廠模式簡(jiǎn)單工廠模式計(jì)算器公共需要繼承的類(lèi)四則運(yùn)算的子類(lèi)除數(shù)不能為錯(cuò)誤主程序多帶帶實(shí)例化,需要公共示例化簡(jiǎn)單工廠模式使用簡(jiǎn)單工廠模式是強(qiáng)類(lèi)型語(yǔ)言,父類(lèi)的引用指向子類(lèi)的實(shí)例而不是

簡(jiǎn)單工廠模式

書(shū)寫(xiě)計(jì)算器小程序

實(shí)現(xiàn)簡(jiǎn)單工廠模式

ref = new ReflectionObject($this);
    }
    public function __set($name, $value)
    {
        if ($this->ref->hasProperty("$name")) {
            $this->$name = $value;
        }
    }
    public function __get($name)
    {    
        if ($this->ref->hasProperty("$name")) {
            return $this->$name;
        }
    }
    public function getResutl()
    {
        return 0;
    }
}

// 四則運(yùn)算的子類(lèi)
class Add extends Operation
{
    public function getResutl()
    {
        return $this->_num1 + $this->_num2;
    }
}

class Sub extends Operation
{
    public function getResutl()
    {
        return $this->_num1 - $this->_num2;
    }
}

class Mul extends Operation
{
    public function getResutl()
    {
        return $this->_num1  * $this->_num2;
    }
}

class Div extends Operation
{
    public function getResutl()
    {
        if (empty($this->_num2)) {
            throw new Exception("除數(shù)不能為0
");
        }
        return $this->_num1 / $this->_num2;
    }
}


class OperationFactory
{
    public static function createOperate($oper)
    {
        $res = null;
        switch ($oper) {
            case "+":
                $res = new Add();
                break;
            case "-":
                $res = new Sub();
                break;
            case "*": 
                $res = new Mul();
                break;
            case "/":
                $res = new Div();
                break;
            default:
                throw new Exception("Operation 錯(cuò)誤
", 1);
                break;
        }
        return $res;
    }
}

/*// 主程序
try {
    // 多帶帶實(shí)例化,需要
    // 公共示例化-> 簡(jiǎn)單工廠模式
    $a = new Div();
    $a->_num1 = 11;
    $a->_num2 = 0;
    var_dump($a->getResutl());

} catch (Exception $e) {
    echo $e->getMessage();
}*/

// 使用簡(jiǎn)單工廠模式
try {

    $oper = OperationFactory::createOperate("+");
    $oper->_num1 = 11;
    $oper->_num2 = 2;
    echo $oper->getResutl();
} catch (Exception $e) {
    echo $e->getMessage();
}

/**
 * think: java 是強(qiáng)類(lèi)型語(yǔ)言,父類(lèi)的引用指向子類(lèi)的實(shí)例
 * 而php不是
 */

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23249.html

相關(guān)文章

  • JavaScript工廠模式

    摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱(chēng)為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類(lèi)都具有同一抽象父類(lèi)。工廠方法模式總結(jié)工廠方法模式是簡(jiǎn)單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說(shuō)一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡(jiǎn)單工廠模式 工廠方法模式 抽象工廠模式 1.簡(jiǎn)單工廠模式 簡(jiǎn)單工廠模式:又稱(chēng)為靜態(tài)工廠方法...

    oujie 評(píng)論0 收藏0
  • 工廠模式-設(shè)計(jì)模式

    摘要:不過(guò)怎么來(lái)說(shuō)工廠方法模式是簡(jiǎn)單工廠模式的升級(jí)版。其次,工廠模式是一種典型的解耦模式,迪米特法則在工廠模式中表現(xiàn)的尤為明顯。 工廠模式想必大家在開(kāi)發(fā)過(guò)程中會(huì)經(jīng)常用到,顧名思義其就是作為一個(gè)工廠用來(lái)生產(chǎn)產(chǎn)品的,下面來(lái)簡(jiǎn)單介紹幾種常見(jiàn)的工廠模式。 0x01 簡(jiǎn)單工廠模式 1、類(lèi)圖結(jié)構(gòu)showImg(/img/bVFf1t?w=531&h=278); 2、角色分類(lèi) 工廠類(lèi):其內(nèi)部具有一點(diǎn)的判...

    HtmlCssJs 評(píng)論0 收藏0
  • Java 設(shè)計(jì)模式 簡(jiǎn)單工廠 工廠模式 抽象工廠

    摘要:簡(jiǎn)單工廠,工廠模式和抽象工廠。不要認(rèn)為簡(jiǎn)單工廠是用就覺(jué)得一無(wú)是處,也不要覺(jué)得抽象工廠比較高大上就到處套。 工廠模式,實(shí)際上也會(huì)根據(jù)業(yè)務(wù)情景不同會(huì)有不同的實(shí)現(xiàn)方式。一般分為3種。簡(jiǎn)單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡(jiǎn)單到抽象,名稱(chēng)越來(lái)越高大上,實(shí)現(xiàn)方式肯定是越來(lái)越復(fù)雜 結(jié)論1:三種工廠的實(shí)現(xiàn)越來(lái)越復(fù)雜 簡(jiǎn)單工廠 public class Factory { // 定義...

    CocoaChina 評(píng)論0 收藏0
  • 設(shè)計(jì)模式學(xué)習(xí)筆記:工廠模式

    摘要:二簡(jiǎn)單工廠模式組成工廠類(lèi)工廠模式的核心,通過(guò)調(diào)用它來(lái)實(shí)現(xiàn)其他類(lèi)的功能。三工廠方法模式利用工廠方法模式可以有效解決簡(jiǎn)單工廠模式破壞開(kāi)閉原則的問(wèn)題。 一、概念 1、工廠模式分為三類(lèi):(1)簡(jiǎn)單工廠模式:一個(gè)工廠創(chuàng)建所有產(chǎn)品(2)工廠方法模式:一個(gè)工廠方法創(chuàng)建一個(gè)產(chǎn)品(3)抽象工廠模式:一個(gè)工廠方法創(chuàng)建一類(lèi)產(chǎn)品 2、創(chuàng)建型模式這種模式是指將實(shí)例的創(chuàng)建和使用分離開(kāi)來(lái),隱藏類(lèi)實(shí)例的創(chuàng)建細(xì)節(jié),外界...

    luxixing 評(píng)論0 收藏0
  • Java設(shè)計(jì)模式之(二)——工廠模式

    摘要:需要說(shuō)明的是在設(shè)計(jì)模式一書(shū)中將工廠模式分為兩類(lèi)工廠方法模式與抽象工廠模式,將簡(jiǎn)單工廠模式看為工廠方法模式的一種特例,兩者歸為一類(lèi)。工廠模式的作用工廠模式的作用封裝變化創(chuàng)建邏輯有可能變化,封裝成工廠類(lèi)之后,創(chuàng)建邏輯的變更對(duì)調(diào)用者透明。1、什么是工廠模式Define an interface for creating an object,but let subclasses decide whi...

    Doyle 評(píng)論0 收藏0
  • 工廠模式理解了沒(méi)有?

    摘要:我認(rèn)為按書(shū)上的順序比較好理解因?yàn)楹?jiǎn)單靜態(tài)工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強(qiáng)。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復(fù)雜了,我們一般的應(yīng)用都寫(xiě)不到。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡(jiǎn)單啦 單例模式你會(huì)幾種寫(xiě)法? 昨天寫(xiě)了單例模式了,今天是時(shí)候?qū)懝S模式啦~ 工廠模式我個(gè)人認(rèn)為其實(shí)比...

    蘇丹 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<