国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

簡單工廠模式

liaosilzu2007 / 2908人閱讀

摘要:簡單工廠模式書寫計算器小程序實現簡單工廠模式簡單工廠模式計算器公共需要繼承的類四則運算的子類除數不能為錯誤主程序多帶帶實例化,需要公共示例化簡單工廠模式使用簡單工廠模式是強類型語言,父類的引用指向子類的實例而不是

簡單工廠模式

書寫計算器小程序

實現簡單工廠模式

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;
    }
}

// 四則運算的子類
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("除數不能為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 錯誤
", 1);
                break;
        }
        return $res;
    }
}

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

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

// 使用簡單工廠模式
try {

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

/**
 * think: java 是強類型語言,父類的引用指向子類的實例
 * 而php不是
 */

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23249.html

相關文章

  • JavaScript工廠模式

    摘要:基于工廠角色和產品角色的多態性設計是工廠方法模式的關鍵。工廠方法模式之所以又被稱為多態工廠模式,是因為所有的具體工廠類都具有同一抽象父類。工廠方法模式總結工廠方法模式是簡單工廠模式的進一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據抽象程度的不同分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式 1.簡單工廠模式 簡單工廠模式:又稱為靜態工廠方法...

    oujie 評論0 收藏0
  • 工廠模式-設計模式

    摘要:不過怎么來說工廠方法模式是簡單工廠模式的升級版。其次,工廠模式是一種典型的解耦模式,迪米特法則在工廠模式中表現的尤為明顯。 工廠模式想必大家在開發過程中會經常用到,顧名思義其就是作為一個工廠用來生產產品的,下面來簡單介紹幾種常見的工廠模式。 0x01 簡單工廠模式 1、類圖結構showImg(/img/bVFf1t?w=531&h=278); 2、角色分類 工廠類:其內部具有一點的判...

    HtmlCssJs 評論0 收藏0
  • Java 設計模式 簡單工廠 工廠模式 抽象工廠

    摘要:簡單工廠,工廠模式和抽象工廠。不要認為簡單工廠是用就覺得一無是處,也不要覺得抽象工廠比較高大上就到處套。 工廠模式,實際上也會根據業務情景不同會有不同的實現方式。一般分為3種。簡單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡單到抽象,名稱越來越高大上,實現方式肯定是越來越復雜 結論1:三種工廠的實現越來越復雜 簡單工廠 public class Factory { // 定義...

    CocoaChina 評論0 收藏0
  • 設計模式學習筆記:工廠模式

    摘要:二簡單工廠模式組成工廠類工廠模式的核心,通過調用它來實現其他類的功能。三工廠方法模式利用工廠方法模式可以有效解決簡單工廠模式破壞開閉原則的問題。 一、概念 1、工廠模式分為三類:(1)簡單工廠模式:一個工廠創建所有產品(2)工廠方法模式:一個工廠方法創建一個產品(3)抽象工廠模式:一個工廠方法創建一類產品 2、創建型模式這種模式是指將實例的創建和使用分離開來,隱藏類實例的創建細節,外界...

    luxixing 評論0 收藏0
  • Java設計模式之(二)——工廠模式

    摘要:需要說明的是在設計模式一書中將工廠模式分為兩類工廠方法模式與抽象工廠模式,將簡單工廠模式看為工廠方法模式的一種特例,兩者歸為一類。工廠模式的作用工廠模式的作用封裝變化創建邏輯有可能變化,封裝成工廠類之后,創建邏輯的變更對調用者透明。1、什么是工廠模式Define an interface for creating an object,but let subclasses decide whi...

    Doyle 評論0 收藏0
  • 工廠模式理解了沒有?

    摘要:我認為按書上的順序比較好理解因為簡單靜態工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復雜了,我們一般的應用都寫不到。 前言 只有光頭才能變強 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 單例模式你會幾種寫法? 昨天寫了單例模式了,今天是時候寫工廠模式啦~ 工廠模式我個人認為其實比...

    蘇丹 評論0 收藏0

發表評論

0條評論

liaosilzu2007

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<