多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
1. 简单工厂模式: 简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。 ~~~ /** * 简单工厂模式与工厂方法模式比较。 * 简单工厂又叫静态工厂方法模式,这样理解可以确定,简单工厂模式是通过一个静态方法创建对象的。 */ abstract class Fruit{ private $name; // Force Extending class to define this method abstract protected function getName(); abstract protected function setName($name); // Common method public function printName() { print $this->getName() . "\n"; } } class Apple extends Fruit{   function __construct(){     $this->name = "Apple";   } } class Banana extends Fruit{   function __construct(){     $this->name = "Banana";   } } /* class Factory{   static function createFruit($classname){     return new $classname();   } } */ class Factory{   static function createFruit($classname){     if($classname == "Apple"){       return new Apple();     }else if($classname == "Banana"){       return new Banana();     }     return null;   } } //测试 Factory::createFruit("Apple"); Factory::createFruit("Banana"); ~~~