工厂模式是指创建一个类似于工厂的类,通过对类中成员方法的调用返回不同类型的对象。
工厂模式通常创建一个基类,根据对象类型的不同创建不同的扩展类,而工厂类就像生产零件一样,生产出类型不同的对象。在程序中,通过对对象的调用实现不同的功能。
一下代码实现了一个管理系统的例子:
<?php
abstract class User
{
provite $name = NULL;
function User($name)
{
$this->name = $name;
}
function getName(){return $this->name;}
function ViewAccess(){return "No";}
function EditAccess(){return "No";}
function DeleteAccess(){return "No";}
function ManageAccess(){return "No";}
}
//普通用户
class Client extends User
{
function ViewAccess()
{
return "Yes";
}
}
class Administrator extends User
{
function ViewAccess(){return "Yes";}
function EditAccess(){return "Yes";}
function DeleteAccess(){return "Yes";}
}
class Supporter extends User
{
function ViewAccess(){return "Yes";}
function EditAccess(){return "Yes";}
function DeleteAccess(){return "Yes";}
function ManageAccess(){return "Yes";}
}
class Factory
{
private static $users = ("Simon"=>"Client","Elaine"=>"Administrator","Bob"=>"Supporter");
static function Create($name)
{
switch (self::$users[$name])
{
case "Client": return new Client($name);
case "Administrator": return Administrator($name);
case "Supporter": return 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";
}
?>
分享到:
相关推荐
这个是http://blog.csdn.net/dawanganban/article/details/9884681博客中java设计模式的源代码。下载前请先看《设计模式——工厂模式在开发中的应用》一文。
工厂方法模式是面向对象设计模式中的一种,它属于创建型模式,主要解决的是当系统需要创建的对象具有多种类型,而具体创建哪种类型的对象在运行时才能确定的问题。在这个压缩包中,`FactoryMethod`可能包含了Java...
**设计模式——简单工厂模式** 简单工厂模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(称为工厂类)负责创建对象,客户端无需知道所创建的对象的具体类,只需要...
Android之大话设计模式——:抽象工厂模式借鉴.pdf
抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体类。这种模式的主要目的是为了隔离产品对象的创建和使用,使得系统对产品类的依赖降低到最低,同时也方便了产品的扩展和...
简单工厂模式,也称为静态工厂模式,是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露实例化逻辑。在简单工厂模式中,一个单一的工厂类负责生产所有相关类型的实例。这种模式适用于产品种类较少且...
Android之大话设计模式——:抽象工厂模式参考.pdf
在学习和应用抽象工厂模式时,理解其核心思想——封装变化和解耦,以及如何在实际项目中选择合适的场景使用这一模式,是非常关键的。对于软件工程专业的学生来说,掌握这一模式不仅可以提升编程能力,还能提高对软件...
Java设计模式——工厂设计模式详解 在软件设计中,工厂设计模式是一种常用的设计模式,主要用于实例化有共同接口的类。Java设计模式——工厂设计模式是Java中的一种常用的设计模式,主要用于实例化有共同接口的类。...
《C#设计模式——工厂模式详解》 工厂模式是一种常用的设计模式,它的主要目的是通过抽象出产品创建过程,使得客户端代码不再直接new对象,而是通过工厂来获取对象,从而降低了代码之间的耦合度,提高了系统的可...
《设计模式——GFour》是一本深受IT从业者喜爱的经典书籍,尤其在C++开发者中具有广泛影响力。设计模式是软件工程领域中的一种最佳实践,它总结了在特定情境下解决问题的常见方法,使得代码可读性更强,复用性更高,...
设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。刘伟先生在讲解设计模式时,通常会深入浅出地介绍这些模式的原理、应用场景以及如何有效地在实际编程中应用它们。设计模式并不是...
简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了客户端代码与具体产品类之间的耦合度。在本实验中,我们将深入理解和应用C#语言实现简单工厂模式。 简单工厂模式的...
### 设计模式——基于C#的工程化实现及扩展 #### 概述 本书旨在向读者展示如何利用C# 2.0语法有效地实现和应用设计模式,使其不仅仅局限于简单的例子,而是能够在实际工程项目中发挥重要作用。全书分为七个部分,...
### 设计模式——工厂模式与单例模式 #### 一、引言 设计模式是软件工程领域中的一个重要概念,它代表了在特定情况下解决常见问题的最佳实践。在本篇文章中,我们将深入探讨两种广泛使用的软件设计模式:工厂模式...
本篇文章将深入探讨Java中的一个基础设计模式——工厂模式,以及它的一些变体,如简单工厂模式和抽象工厂模式,并结合Java的反射机制进行讲解。 首先,工厂模式的核心思想是提供一个创建对象的接口,但让实现这个...
### C#设计模式——工厂模式详解 #### 一、引言 在软件开发过程中,对象的创建是一个常见的任务。然而,随着需求的变化,这些对象的具体实现可能会经历较大的改动。为了解决这一问题,并确保系统的其他部分不受这些...
设计模式是一种在软件设计中被广泛认可的解决特定问题、经过良好记录并可重用的解决方案。它们代表了在各种编程环境中反复出现的问题的最佳实践。原版的设计模式通常指的是最初由“Gang of Four”(GoF)在他们的...
本资源“JAVA设计模式.chm”聚焦于一种重要的设计模式——工厂模式。工厂模式是面向对象设计中的一种经典模式,它在Java程序中扮演着核心角色。 工厂模式的核心思想是提供一个创建对象的接口,但让实现这个接口的类...