<?php
//抽象基类User
abstract class User
{
protected $name = NULL;
//构造函数
function User($name)
{
$this->name = $name; //将属性name设置成创建对象时传入的参数
}
//获取属性$name
function getName()
{
return $this->name; //返回name属性
}
//是否具有浏览权限
function ViewAccess()
{
return "No"; //抽象基类的浏览权限为No
}
//是否具有编辑权限
function EditAccess()
{
return "No"; //抽象基类的编辑权限为No
}
//是否具有删除权限
function DeleteAccess()
{
return "No"; //抽象基类的删除权限为No
}
//是否具有用户管理权限
function ManageAccess()
{
return "No"; //抽象基类的管理权限为No
}
}
//普通用户
class Client extends User
{
//重写ViewAccess函数,对普通用户授予浏览权限
function ViewAccess()
{
return "Yes";
}
}
//管理员
class Administrator extends User
{
//重写ViewAccess函数,对普通用户授予浏览权限
function ViewAccess()
{
return "Yes";
}
//重写EditAccess函数,对普通用户授予编辑权限
function EditAccess()
{
return "Yes";
}
//重写DeleteAccess函数,对普通用户授予删除权限
function DeleteAccess()
{
return "Yes";
}
}
//维护人员
class Supporter extends User
{
//重写ViewAccess函数,对普通用户授予浏览权限
function ViewAccess()
{
return "Yes";
}
//重写EditAccess函数,对普通用户授予编辑权限
function EditAccess()
{
return "Yes";
}
//重写DeleteAccess函数,对普通用户授予删除权限
function DeleteAccess()
{
return "Yes";
}
//重写ManageAccess函数,对普通用户授予管理权限
function ManageAccess()
{
return "Yes";
}
}
//工厂类
class Factory
{
//静态成员属性
private static $users = array("Simon"=>"Client", "Elaine"=>"Administrator", "Bob"=>"Supporter");
//创建对象的成员方法
static function Create($name)
{
//根据成员属性的不同创建不同的对象
switch (self::$users[$name])
{
case "Client":
return new Client($name);
case "Administrator":
return new Administrator($name);
case "Supporter":
return new Supporter($name);
}
}
}
//一个存放用户名的数组
$users = array("Elaine", "Simon", "Bob");
//对于每个用户分析其权限
foreach($users as $user)
{
$obj = Factory::Create($user); //创建对象
echo $obj->getName() . "的权限:\n";
echo "浏览:".$obj->ViewAccess()."\n"; //输出浏览权限
echo "修改:".$obj->EditAccess()."\n"; //输出修改权限
echo "删除:".$obj->DeleteAccess()."\n"; //输出删除权限
echo "管理:".$obj->ManageAccess()."\n"; //输出管理权限
}
?>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhuzhao/archive/2009/03/06/3964456.aspx
分享到:
相关推荐
php 设计模式 简单工厂模式
PHP实现的简单工厂模式,有完整的代码,实现了加法,减法,和乘法,剩下一个除法没有实现
本文以实例形式较为详细的介绍了PHP设计模式的简单工厂模式,对于进行PHP程序设计来说有很好的借鉴作用。具体如下: 一、概念 简单工厂模式 【静态工厂方法模式】(Static Factory Method) 是类的创建模式 工厂模式的...
本文实例讲述了PHP设计模式之简单工厂和工厂模式。分享给大家供大家参考,具体如下: 工厂模式是创建型模式的一种,分为简单工厂模式,工厂模式,抽象工厂模式,简单工厂可以称之为工厂模式的一个特例 先用一段简单...
设计模式PHP版:简单工厂模式实例。 以计算器的实现为实例,说明了简单工厂模式的实现方法。
关于简单工厂模式的详细介绍,有需要学习的看看吧。还是那句话,好东西要大家分享,别忘了支持哦。
1)程序功能:用简单工厂模式实现计算器功能,采用PHP编写。 2)程序详解地址:http://blog.csdn.net/clevercode/article/details/45692995。 3)原创作品,出自"CleverCode的博客",分类为《设计模式之PHP项目应用...
简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出那一种产品类的实例。 1.工厂模式的几种形态 工厂模式专门负责将大量有共同接口的类实例化...
PHP设计模式实例之(观察者模式、策略模式、简单工厂模式)借鉴.pdf
NULL 博文链接:https://xiaqi-2009.iteye.com/blog/1041277
PHP中简单工厂模式实例代码,学习php类的朋友可以参考下
本文实例讲述了PHP工厂模式简单实现方法。分享给大家供大家参考,具体如下: 工厂模式是一种类,建立了一个工厂来根据所需来创建对象,这种方式在多态性编程中是很重要的,允许动态替换类,修改配置等。 php示例代码...
而工厂方法和简单工厂相对,大家初看起来好像工厂方法增加了许多代码但是实现的功能和简单工厂一样。但本质是,简单工厂并未严格遵循设计模式的开闭原则,当需要增加新产品时也需要修改工厂代码。但是工厂方法则严格...
顾名思义,工厂是可以加工零件的,PHP程序中的工厂模式也有相同的功能,可以方便的使用一个静态的工厂方法来实例化某一个类,那么这样做的好处是什么呢?初学PHP的设计模式,以下是我个人的理解一般我们实例化一个类...
//实现一个简单的计算器 interface MathOp{ public function calculation($num1,$num2); } //加法 class MathAdd implements MathOp{ public function calculation($num1,$num2){ return $num1 + $num2; } } //...