工廠模式的簡單原理

工廠模式:顧名思義就是建立對象或者特定資源的設計容器;php

<?php

    /**工廠模式:解決類與類之間的高耦合問題,實現類內部的高聚合,低耦合
     *設計思想:當類的資源會在項目中高頻的調用,若該類的生成方法有變化(如建立對象添加了參數),則必須在依賴此類的全部文件中動態的作出修改,
     * 十分繁瑣不方便且容易出錯,工廠模式正是解決類之間的高度耦合問題,使得類的構造交給某個特定的工廠類,須要調用此類資源的其餘文件只需依賴於
     * 某個特定的工廠類,下降耦合度;
     *
     * 工廠模式的粗糙展現
     * */
    //能力接口
    interface power
    {
        function fly();

        function shoot();
    }

    //獸族工廠
    class Orcs implements power
    {
        function fly()
        {
            return 'the animal has a pair of wings';
        }

        function shoot()
        {
            return 'the animal can use guns';
        }
    }

    //人族
    class Man implements power
    {
        function fly()
        {
            return 'the man can fly with airplane';
        }

        function shoot()
        {
            return 'the man is the inventor of hot weapon';
        }
    }
    class Factory
    {
        public static function createHero($type)
        {
            switch($type){
                case 'man':
                    return new Man;
                    break;
                case 'orcs':
                    return new Orcs;
                    break;
            }
        }
    }

    //類經過工廠類構造,當類的建立方式有所變化時,只需修改工廠類中的構造形式便可
    $man = Factory::createHero('man');
    echo $man->fly()."<br />";

    $orcs = Factory::createHero('orcs');
    echo $orcs->shoot();
工廠模式
相關文章
相關標籤/搜索