PHP设计模式_工厂模式详解编程语言

了解

工厂模式,工厂方法或者类生成对象,而不是在代码中直接new。 
使用工厂模式,可以避免当改变某个类的名字或者方法之后,在调用这个类的所有的代码中都修改它的名字或者参数,只需要在工厂类里修改需要new的类名即可。如果我们不使用工厂方式实例化这些类,则需要每一个类都需要new一遍,过程不可控,类多了,到处都是new的身影引进工厂模式,通过工厂统一创建对象实例。

代码

简单案例①

<?php 
//需要new的类 
class Test1{   
    static function test(){ 
        echo __FILE__; 
    } 
}
<?php 
//工厂类 
class Factory{ 
    /* 
     * 如果某个类在很多的文件中都new ClassName(),那么万一这个类的名字 
     * 发生变更或者参数发生变化,如果不使用工厂模式,就需要修改每一个PHP 
     * 代码,使用了工厂模式之后,只需要修改工厂类或者方法就可以了。 
     */ 
    static function createDatabase(){ 
        $test = new Test1(); 
        return $test; 
    } 
}
<?php 
//调用的代码程序 
spl_autoload_register('autoload1'); 
 
$test = Factory::createDatabase(); 
$test->test(); 
function autoload1($class){ 
    $dir  = __DIR__; 
    $requireFile = $dir."//".$class.".php"; 
    require $requireFile; 
}

简单案例②

<?php   
//工厂模式 提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤   
//字符串类   
class String {   
    public function write() {}   
}   
//Json类   
class Json {   
    public function getJsonData() {}   
}   
//xml类   
class Xml {   
    public function buildXml() {}   
}   
//工厂类   
class Factory {   
    public static function create($class) {   
        return new $class;   
    }   
}   
Factory::create("Json"); //获取Json对象  

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/17154.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论