zoukankan      html  css  js  c++  java
  • PHP设计模式---工厂模式

    工厂模式也是最常用的设计模式之一,基本所有的框架都会利用工厂模式来实现解耦.

    顾名思义,工厂模式就是一个工厂,工厂是用来生产产品的,这里以一个服装工厂为例.

    <?php
    
    class Cloth
    {
        public function __construct()
        {
            echo "生产了一件衣服<br>";
        }
    }
    class Sweater
    {
        public function __construct()
        {
            echo "生存了一件毛衣<br>";
        }
    }
    class Factory
    {
        public static function make($product)
        {
            switch ($product){
                case 'yifu':
                    return new Cloth();
                case 'maoyi':
                    return new Sweater();
                default:
                    echo "还没有这种产品<br>";
            }
        }
    }
    /*传统模式*/
    
    //需要一件衣服
    $cloth = new Cloth();
    //又需要一件毛衣
    $sweater = new Sweater();
    
    /*工厂模式*/
    $cloth2 = Factory::make('maoyi');
    $sweator = Factory::make('sweator');

    如上文,可以看到传统模式下会带来比较大的耦合, 如果Cloth类改了个名字,那么就有多处需要Cloth一同改名.

    而工厂模式,依赖的是工厂出产的产品,标准化,模式化.

    也许从这里还看不出工厂模式的优点, 当工厂模式和其他的设计模式配合使用,就会带来许多有意思的特性.

    比如laravel的核心容器,就可以理解为一个超级工厂, 生产线和产品都是动态确定的.

  • 相关阅读:
    设计模式-观察者模式
    获取ubuntu中软件包的有用地址
    vim 简单命令
    adb logcat 日志过滤
    shell编程——
    shell编程——参数传递
    Chromecast
    linux 广播
    【转】Git命令解说
    linux 多播
  • 原文地址:https://www.cnblogs.com/dpdp/p/7489077.html
Copyright © 2011-2022 走看看