什么是设计模式?
设计模式提取了共同的问题,定义了经过测试的解决方案,并描述了可能的结果。也就是说,设计模式是一些可以在项目中重复使用的解决方案。通俗的来说,设计模式就是一些编程的套路,不是具备的攻防动作,是为设计出更好系统设计的解决方案。
创建模式:简单工厂模式 、工厂模式、抽象工厂模式、单例模式
结构型模式:适配器模式、组合模式、外观模式、代理模式
行为型模式:命令模式、迭代器模式、策略模式、观察者模式
今天这篇文章首先要讲简单工厂模式,之后会陆续讲解其他模式
简单工厂模式
又叫做静态工厂方法(Static Factory Method)模式,不属于23中GOF设计模式之一。
工厂模式,就是负责生成其他对象的类或方法
比如,有一些类,它们都继承交通工具类
interface Vehicle
{
public function drive();
}
class Car implements Vehicle
{
public function drive()
{
echo '汽车靠四个轮子滚动行走。';
}
}
class Ship implements Vehicle
{
public function drive()
{
echo '轮船靠螺旋桨划水前进。';
}
}
class Aircraft implements Vehicle
{
public function drive()
{
echo '飞机靠螺旋桨和机翼的升力飞行。';
}
}
再创建一个工厂类,专门用作类的创建
class VehicleFactory
{
public static function build($className = null)
{
$className = ucfirst($className);
if ($className && class_exists($className)) {
return new $className();
}
return null;
}
}
工厂类用了一个静态方法来创建其他类,在客户端中就可以这样使用:
VehicleFactory::build('Car')->drive();
VehicleFactory::build('Ship')->drive();
VehicleFactory::build('Aircraft')->drive();
省去了每次都要new
类的工作。