[php学习]工厂模式

<?php

/**
*
*/
class Automobile
{
	private $vehicle_make;
	private $vehicle_model;

	public function __construct($make,$model)
	{
		# code...
		$this->vehicle_make = $make;
		$this->vehicle_model = $model;
	}

	public function get_make_and_model(){
		return $this->vehicle_make . ‘ ‘. $this->vehicle_model;
	}
}

/**
*
*/
class AutomobileFactory
{
	public function create($make,$model){
		return new Automobile($make,$model);
	}
}

$veyron = AutomobileFactory::create(‘chuzha‘,‘love you‘);
print_r($veyron->get_make_and_model());

?>

值得注意的是调用静态方法:

AutomobileFactory::create
时间: 2024-10-13 03:08:39

[php学习]工厂模式的相关文章

由XML解析学习工厂模式

代码段1: startupData = new StartupData(); /* 设定自定义的MyHandler给XMLReader */ StartupXMLHandler startupDataXMLHandler = new StartupXMLHandler(); startupDataXMLHandler.setData(startupData); /* 产生SAXParser对象 */            SAXParserFactory spf = SAXParserFacto

设计模式学习 - 工厂模式

工厂模式: 定义了一个创建对象的接口,但由它的子类决定实例化哪一个对象.工厂方法将对象的实例化延迟到了子类. 模式组成: 一组使用者:父类定义一个创建对象的接口及其他通用接口,子类负责创建对象接口的具体实现(在案例中为 PizzaStore 及 NYPizzaStore) 一组产品类:(在案例中为 抽象Pizza类及其具体实现的子类) 注: 每一个使用者的子类负责创建一个(组)相似对象. UML 类图: 代码具体实现: 1. 对象的创建者: PizzaStore 类 // pizza Store

设计模式(三)学习----工厂模式

工厂模式:专门负责将大量有共同接口的类实例化,工厂模式可以动态的决定将哪一个类实例化,不必事先知道每次要实例化哪一个类.工厂模式有以下几种形态: 简单工厂模式(simple factory)又称静态工厂模式. 工厂方法模式(Factory Method)又称多态工厂模式模式. 抽象工厂模式(Abstract Method):又称工具箱. 1.简单工厂模式UML类图如图所示: 代码: Fruit 抽象产品: package com.lp.ecjtu.SimpleFactory; public in

设计模式学习——工厂模式(Factory Pattern)

1.有一个工厂,专门生产不同品牌的汽车.当有人需要从此工厂提货的时候,只需要告诉他,要什么品牌的,就可以了,并不关心这些车是怎么生产出来的. 2.以上方式,如果增加品牌的时候,也要修改工厂,有点麻烦.于是,把工厂也抽象了. 1的类图与实现: 首先,是通用的车 1 /// 2 /// @file Car.h 3 /// @author marrs([email protected]) 4 /// @date 2017-08-12 20:10:31 5 /// 6 7 #ifndef __CAR_H

工厂模式(Factory Patter)

1.工厂模式简介 工厂模式属于创建型模式,是专门用来创建对象的模式,抽象了实例化的过程.工厂模式分为 : 工厂方法模式.抽象工厂模式. 在学习工厂方法模式.抽象工厂之前,首先先要了解一下简单工厂模式,简单工厂不在23种设计模式之列,一般它是根据自变量的不同而返回不同的类型.比较简单实用一些,在学习工厂模式之前下来学习一下简单工厂,有助于我们理解工厂模式. 1.1.简单工厂定义 简单工厂是由一个工厂对象决定创建出哪一种产品类的实例. 其实质就是由一个工厂类根据传入的参数,来决定调用哪一个产品类的实

什么是工厂模式

1.  传授设计模式中存在的问题 我个人最近对设计模式中的工厂模式进行了比较深入的学习,通过学习感悟出,现在很多设计模式传道者,在讲述设计模式的过程中存在一些问题,使得设计模式变得很难理解.设计模式本身很抽象,但是这些传道者在讲述的过程中,将一个抽象的东西讲的更抽象,从而使我们望而却步.有些人在讲述的时候,没有考虑读者的注意力.比如我在看<C#设计模式>的时候,在讲述抽象工厂模式的时候,直接就进入了一个示例,而且这个例子比较复杂,涉及了比较多的概念.术语,而且还有算法要处理.但是这些和要讲述的

《大话设计模式》学习笔记系列--1. 简单工厂模式

简单工厂模式实现了一种"工厂"概念的面向对象设计模式,它可以在不指定对象具体类型的情况下创建对象.其实质是定义一个创建对象的接口,但让实现这个接口的类来决定实例化具体类.工厂方法让类的实例化推迟到子类中进行. 以书本上的计算器程序为例,其UML描述如下: 图中,AddOperator, SubtactOpertor继承算式基类Operator,而CreateOperator则是负责创建一个操作类,而不指明具体的子类类型. 下面,我们来看代码: 首先操作积累: /// <summa

设计模式学习第三天:2.1简单工厂模式

一. 简单工厂(Simple Factory)模式      Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例.通常它返回的类都有一个公共的父类和公共的方法.      Simple Factory模式实际上不是GoF 23个设计模式中的一员. 二. Simple Factory模式角色与结构: 工厂类角色Creator (LightSimpleFactory):工厂类在客户端的直接控制下(Create方法)创建产品对象.      抽象产品角色Product 

设计模式学习03—抽象工厂模式

1.动机与定义 工厂模式中,一个工厂仅仅能提供一个或一类产品,当产品种类较多,形成产品系列(比方我们要创建跨平台的button,菜单,文本框等等一系列GUI控件: 单纯使用工厂模式会产生大量工厂,并且后期维护也不方便,我们能够从产品中找到规律,假设产品等级相对固定,以后仅仅会新增产品族,那么我们就能够把整个产品族放到一个工厂创建,以后新增其它系统产品族也很方便,例如以下图: 这样的模式就是抽象工厂,工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则须要面对多个产品等级结构,一个工厂等级结构能