设计模式是在1990年由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。设计模式通常描述了一组相互紧密作用的类与对象,为软件的重构提供了目标。
在软件设计领域中,设计模式是一个用来组织代码的模板,它不是一个能在项目中直接包含和使用的代码库。用较小的示例展示模式的价值是非常困难的,因为设计模式实际上是在大型代码库中发挥作用的,然而这并非意味着不应该在小应用程序中使用设计模式。很多良好的应用程序都以小应用程序为起点,逐渐发展到大型应用程序,所以我们没有理由不以扎实的编码实践为基础。在PHP的开发过程中,经常会使用的设计模式包括:简单工厂模式、单元素模式、观察者模式、命令模式、策略模式及MVC模式等。
1.简单工厂模式(Simple Factory Pattern)又被称为静态工厂方法模式(Static Factory Method Pattern),具体指创建一个类似于工厂的类,通过对该类中成员方法的调用返回不同类型的对象。
在面向对象编程方式中,简单工厂模式是一种经常被使用到的模式。简单工厂模式提供了一种在实时状态下实例化对象的机制,该模式的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建并返回哪个产品类的实例化对象。
下面通过一个简单工厂模式的示例来说明简单工厂模式的原理,代码如下:
1 <?php 2 abstract class Product{ //抽象类Product 3 abstract function getName(); 4 } 5 class ProductA extends Product{ //具体产品类ProductA 6 public function getName(){ 7 echo"I am ProductA"; 8 } 9 } 10 class ProductB extends Product{ //具体产品类ProductB 11 public function getName(){ 12 echo"I am ProductB"; 13 } 14 } 15 class ProductFactory{ //工厂类ProductFactory 16 static function create($name){ 17 switch($name){ 18 case"A": 19 return new ProductA(); 20 case"B": 21 return new ProductB(); 22 } 23 } 24 } 25 $product=ProductFactory::create("A"); 26 $product->getName(); 27 echo"<br>"; 28 $product=ProductFactory::create("B"); 29 $product->getName(); 30 ?>
在上述代码中,抽象类Product定义了一个获取产品名称的成员方法getName(),Product抽象类的具体实现为子类ProductA和子类ProductB。工厂类ProductFactory用来决定在什么时候创建并返回哪个产品类的实例化对象,使用工厂类时只需要将参数传递给其成员方法create(),就可以创建Product类的对象,无须考虑具体的生产细节。此关系下用图表示:
运行简单工厂模式的示例代码后,得到的运行结果如图所示:
以上是我们在郑州网站建设过程中的总结,欢迎指正。