PHP高级对象构建 工厂模式的使用

yipeiwu_com6年前PHP代码库

PHP设计模式工厂模式的使用方法

复制代码 代码如下:

<?php
/*
* 每日练习 PHP设计模式工厂模式的使用方法
* PHP工厂模式不难理解,顾名思义,就是一个加工厂,然后工厂是制造产品的,只要制造产品
* 就必须有几个要素:"方法","模型","工厂车间"。
*/
/*第一种示例 普通工厂模式
* */
abstract class model {//产品模型
abstract function getNames();
}
class zhangsan extends model {//产品实例
function getNames(){
return "my name is zhengsan";
}
}
class lisi extends model{//产品实例
function getNames(){
return "my name is lisi";
}
}
abstract class gongchangModel {//工厂模型
abstract function getZhangsan();
abstract function getLisi();
}
class gongchang extends gongchangModel{//工厂实例
function getZhangsan(){
return new zhangsan();
}
function getLisi(){
return new lisi();
}
}
$gongchang=new gongchang();//实例化工厂
$zhangsan=$gongchang->getZhangsan();//制造产品
echo $zhangsan->getNames();//产品输出功能
?>

之前我写去关于工厂设计模式的文章,实际上,工厂模式包含普通工厂模式和抽象工厂模式,但是,不管是什么工厂模式,它们都是有一个作用,那就是生成对象。
好了,那我们用下面最最简单的例子,再把PHP设计模式中的厂模式再演示一下。
我自己总结了一下,工厂模式的三个要素:
一、产品模型
二、产品实例
三、工厂车间
复制代码 代码如下:

<?php
abstract class prModel {//产品模型
abstract function link();
}
class webLink extends prModel{//实例一个产品
public function link(){
echo "www.jb51.net";
}
}
class gongchang {//工厂
static public function createLink (){
return new webLink();
}
}
$weblink=gongchang::createLink();//通过工厂制造一个对象
$weblink->link();//输出 www.jb51.net
?>

以上方法,就简单的说明了工厂类的使用方法。关注面向对象

相关文章

PHP define函数的使用说明

PHP中预先定义好的常量: __FILE__ 当前正在处理的脚本文件名。如果使用在一个被包含的文件中,那么它的值就是这个被包含的文件,而不是包含它的文件名。 __LINE__ 正在处理的...

PHP 文件类型判断代码

何为MIME类型,它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。 多用于指定一些客户端自定义的文件名,以及一些媒体文...

PHP命名空间namespace用法实例分析

PHP命名空间namespace用法实例分析

本文实例讲述了PHP命名空间namespace用法。分享给大家供大家参考,具体如下: namespace(命名空间)相当于函数、类,划分了一个区域,这样子就使得在同个页面中可以requi...

php表单提交与$_POST实例分析

php表单提交与$_POST实例分析

本文实例分析了php的表单提交与$_POST。分享给大家供大家参考。具体如下: 这里要注意:表单 checkbox 的 name 需要以数组形式来命名。 表单文件:index.php 复...

php empty,isset,is_null判断比较(差异与异同)

php empty,isset,is_null判断比较(差异与异同)

一、举例说明 A.一个变量没有定义,我们该怎么样去判断呢 复制代码 代码如下: <?php #不存在$test 变量 $isset= isset($test)?"test is d...