<?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设计模式之简单工厂和工厂模式。分享给大家供大家参考,具体如下: 工厂模式是创建型模式的一种,分为简单工厂模式,工厂模式,抽象工厂模式,简单工厂可以称之为工厂模式的一个特例 先用一段简单...
在PHP中,简单工厂模式通常通过一个静态方法来实现。这个静态方法根据传入的参数或条件决定创建并返回哪种类型的对象。在给定的实例中,我们看到了`farmer`类作为工厂类,其中包含一个名为`factory`的静态方法。这个...
简单工厂模式是软件设计模式中的一种,它属于...这就是关于PHP中的简单工厂模式的解释,以及如何通过一个计算器的例子来实践这一模式。这个模式在日常开发中非常常见,尤其是在需要根据条件动态创建不同类型的对象时。
1)程序功能:用简单工厂模式实现计算器功能,采用PHP编写。 2)程序详解地址:http://blog.csdn.net/clevercode/article/details/45692995。 3)原创作品,出自"CleverCode的博客",分类为《设计模式之PHP项目应用...
1. **简单工厂模式**:由一个静态方法或单一工厂类负责创建所有类型的产品,当产品类型增加时,可能需要修改工厂类,违背了开闭原则。 2. **工厂方法模式**:定义一个创建对象的接口,让子类决定实例化哪一个类。...
PHP 设计模式实例之观察者模式、策略模式、简单工厂模式 PHP 设计模式实例之观察者模式、策略模式、简单工厂模式是指在 PHP 编程中应用设计模式来解决实际问题的实例。设计模式是一种通用的解决方案,可以重复使用...
在软件设计模式中,"简单工厂模式"和"策略模式"是两种常用的设计模式,它们在不同的场景下有着各自的优势。本篇文章将探讨如何利用这两种模式实现简单的排序算法,以提高代码的可读性和可扩展性。 首先,简单工厂...
在PHP中,简单工厂模式通常包含以下几个关键角色: 1. **产品接口/抽象类**:定义了所有产品类共有的公共接口或抽象基类,例如这里的`Fruit`接口,它定义了`grow()`、`harvest()`和`plant()`这三个通用方法。 2. **...
### PHP工厂方法模式详解 #### 一、引言 在软件开发过程中,设计模式作为一种通用的解决方案被广泛采用。设计模式能够帮助开发者更好地组织代码、提高可维护性和可扩展性。其中,创建型设计模式专注于如何高效地...
**PHP中的工厂模式详解** 工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在PHP中,工厂模式可以帮助我们隔离对象的创建和使用,使得代码更加灵活,易于维护和扩展。本篇文章将深入探讨...
### PHP中的简单工厂模式详解 #### 一、引言 简单工厂模式是设计模式中较为基础的一种模式,它属于创建型模式之一。本篇文章通过PHP语言来解析简单工厂模式的具体应用,帮助读者更好地理解并掌握这种模式。 #### ...
工厂模式在PHP中可以有多种形式,如简单工厂模式、工厂方法模式、抽象工厂模式。简单工厂模式就像这里的例子,只有一个工厂类负责创建所有对象。工厂方法模式则是将对象的创建委托给子类,每个子类负责创建一种类型...
标题提到的"用于JavaScript的简单模型工厂"就是这样一个概念,它借鉴了PHP框架Laravel中的Model Factories理念。 在Laravel中,模型工厂是用于生成数据库记录的预定义模板。这些模板可以包含默认值,使得开发者能够...
简单工厂模式使用一个单独的工厂类来创建所有类型的产品对象,而工厂方法模式则使用一系列的工厂子类来分别创建不同类型的产品对象。在简单工厂模式中,如果要引入新的产品类型,则需要修改工厂类;而在工厂方法模式...
1. **简单工厂模式(Simple Factory)**:由一个静态方法来创建对象,这个静态方法即为工厂。根据传入的参数类型,工厂决定创建哪个类的对象。 2. **工厂方法模式(Factory Method)**:这是标题中提到的模式,它...