苏州国际双语学校:常用设计模式之简单工厂模式
来源:百度文库 编辑:九乡新闻网 时间:2024/07/08 15:18:07
简单工厂模式(Simple Factory Pattern): 定义:简单工厂模式又被称为静态工厂方法模式,具体指创建一个类似于工厂的类,通过对该类中成员函数的调用返回不同类型的对象。 在面向对象编程方式中,简单工厂模式是一种经常用到的模式。简单工厂模式提供了一种在实时状态下实例化对象的机制,该模式的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建并返回那个产品类的实例化对象。示例代码: abstract class Product {
abstract function getName();
} class ProductA extends Product {
function getName() {
echo "我是ProductA";
}
} class ProductB extends Product {
function getName() {
echo "我是ProductB";
}
} class ProductFactory {
static function create($name) {
switch($name) {
case "A":
return new ProductA();
case "B":
return new ProductB();
}
}
} $product = ProductFactory::create("A");
$product->getName();
echo "
";
$product = ProductFactory::create("B");
$product->getName();
?> 在上述示例代码中,抽象类Product定义了一个获取产品名称的成员方法getName(),Product抽象类的具体实现为子类ProductA和ProductB。工厂类ProductFactory用来决定在什么时候创建并返回哪个产品类的实例化对象,使用工厂类时将参数传递给其成员方法Create(),就可以创建Product类的对象,无需考虑具体的生产细节。 简单工厂模式的类关系图:
简单工厂模式的运行结果:![](http://userimage2.360doc.cn/11/0209/21/2114136_201102092139110024.jpg)
abstract function getName();
} class ProductA extends Product {
function getName() {
echo "我是ProductA";
}
} class ProductB extends Product {
function getName() {
echo "我是ProductB";
}
} class ProductFactory {
static function create($name) {
switch($name) {
case "A":
return new ProductA();
case "B":
return new ProductB();
}
}
} $product = ProductFactory::create("A");
$product->getName();
echo "
";
$product = ProductFactory::create("B");
$product->getName();
?> 在上述示例代码中,抽象类Product定义了一个获取产品名称的成员方法getName(),Product抽象类的具体实现为子类ProductA和ProductB。工厂类ProductFactory用来决定在什么时候创建并返回哪个产品类的实例化对象,使用工厂类时将参数传递给其成员方法Create(),就可以创建Product类的对象,无需考虑具体的生产细节。 简单工厂模式的类关系图:
![](http://userimage2.360doc.cn/11/0209/21/2114136_201102092136270664.jpg)
![](http://userimage2.360doc.cn/11/0209/21/2114136_201102092139110024.jpg)
常用设计模式之简单工厂模式
设计模式1:Simple Factory Pattern(简单工厂模式)
常用设计模式之观察者模式
常用设计模式之策略模式
设计模式之Factory 工厂模式 抽象工厂 Java工厂方法
常用设计模式收集
读《大话设计模式》---工厂方法模式
简单、抽象工厂模式 - - JavaEye技术网站
设计模式之Prototype 原型模式
设计模式之Builder 生成器模式
设计模式之Template 模板模式
设计模式之Observer 观察者模式
设计模式之Mediator 中介者模式
设计模式之Interpreter 解释器模式
设计模式之Composite 组成模式 树模式
设计模式之Bridge 桥接模式 Bridge模式
读《大话设计模式》---工厂方法模式(factory method) - jia
研磨设计模式之桥接模式-3
设计模式之Chain of Responsibility 职责链模式
GoF设计模式之十六 Iterator- -
薪酬模式设计探讨
薪酬模式设计探讨 -
数据库模式设计
设计模式概述1