PHP中的工厂设计模式【实例】

<?php
/*
定义接口 其中有走路 攻击 寻找的方法
*/
interface GuaiShou
{
    public  function ZouLu();
    public  function GongJi();
    public  function XunZhao();
}
// 继承接口 的  人类
//
class RenLei implements GuaiShou
{
    public function  ZouLu()
    {
        echo ‘我是‘. RenLei::class . ‘,我用双脚走路<br>‘;
    }
    public function  GongJi()
    {
        echo ‘我是‘. RenLei::class.‘,我用智慧攻击<br>‘;
    }
    public function  XunZhao()
    {
        echo ‘我是‘. RenLei::class.‘,我用心寻找<br>‘;
    }
}
// 继承接口 的  精灵
class JingLing implements GuaiShou
{
    public function  ZouLu()
    {
        echo ‘我是‘. JingLing::class.‘,我用双脚走路<br>‘;
    }
    public function  GongJi()
    {
         echo ‘我是‘. JingLing::class.‘,我用法力攻击<br>‘;
    }
    public function  XunZhao()
    {
        echo ‘我是‘. JingLing::class.‘,我用翅膀寻找<br>‘;
    }
}
// 继承接口 的  兽族
class ShouZu implements GuaiShou
{
    public function  ZouLu()
    {
        echo ‘我是‘. ShouZu::class.‘,我用大腿走路<br>‘;
    }
    public function  GongJi()
    {
         echo ‘我是‘. ShouZu::class.‘,我用大力攻击<br>‘;
    }
    public function  XunZhao()
    {
        echo ‘我是‘. ShouZu::class.‘,我用蛮力寻找<br>‘;
    }
}
// 继承接口 的  不死族
class BuSiZu implements GuaiShou
{
    public function  ZouLu()
    {
        echo ‘我是‘. BuSiZu::class.‘,我用大腿走路<br>‘;
    }
    public function  GongJi()
    {
         echo ‘我是‘. BuSiZu::class.‘,我用大力攻击<br>‘;
    }
    public function  XunZhao()
    {
        echo ‘我是‘. BuSiZu::class.‘,我用蛮力寻找<br>‘;
    }
}
/*
创建工厂类
*/
class AFactory
{
    // 静态的工厂方法 传入类型
    //     将传入的类型赋值给类名变量
    //     返回 new 类名变量
     static function factory($type)
    {
        $className = $type;
        return  new $className;
    }
}
// 调用:
//     工厂类下的工厂方法(传入类名)
//     调用方法
$ren = AFactory::factory(‘BuSiZu‘);
$ren->GongJi();
时间: 2024-10-12 13:33:24

PHP中的工厂设计模式【实例】的相关文章

PHP中“简单工厂模式”实例讲解

原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html 简单工厂模式:①抽象基类:类中定义抽象一些方法,用以在子类中实现②继承自抽象基类的子类:实现基类中的抽象方法③工厂类:用以实例化对象 看完文章再回头来看下这张图,效果会比较好 1 采用封装方式 2 3 <?php 4 class Calc{ 5 /** 6 * 计算结果 7 * 8 * @param int|float $num1 9 * @pa

通过一个计算器的例子,了解设计模式中的工厂模式

计算器实例方法声明 @interface ViewController : UIViewController { BOOL bBegin; BOOL backOpen; BOOL cptOpen; BOOL secOpen; double fstOperand; double sumOperand; NSString *operator; } @property (strong, nonatomic) IBOutlet UITextField *display; @property (stron

设计模式(三)——抽象工厂模式——抽象工厂模式实例

三.抽象工厂模式实例 1.数据库实例 数据库User表: #ifndef USER_H #define USER_H #include <string> using std::string; //数据库User表 class User { public: unsigned int  getID() { return m_ID; } void setID(unsigned int n) { m_ID = n; } string getName() { return m_name; } void 

简单工厂设计模式

说起设计模式,不得不从最简单的简单工厂设计模式开始说起. 简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常具有共同的父类.因为简单工厂模式中用于创建的方法是静态的,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,属于类创建型模式. 首先我们先看看下面这个类图: 在这个类图中,我们可以发现,静态工厂一共有三个对象是不可缺少的 1公共父类(Fruit接口) 2具体的产品类(Apple, Banana) 3静态工厂类(Simp

简单工厂设计模式(Simple Factory Design Pattern)

[引言]最近在Youtub上面看到一个讲解.net设计模式的视频,其中作者的一个理解让我印象很深刻:所谓的设计模式其实就是运用面向对象编程的思想来解决平时代码中的紧耦合,低扩展的问题.另外一点比较有见解的是,区分了设计模式(Design Pattern),结构模式(Architecture Pattern),架构类型(Architecture Style). 如下图所示 Design Pattern:是基于代码层面的,就是针对解决功能模块之间的问题而采用恰当的设计模式,比如依赖注入,简单工厂,适

Net设计模式实例系列文章总结

1 什么是设计模式 设计模式是对在软件设计过程中重复出现的问题提出了一种比较好的解决方案.正如一位专家所说:设计模式是对程序设计人员经常遇到的设计问题的可再现的解决方案(The Smalltalk Companion).GOF设计模式通常被认为是其他设计模式的基础,随着业务复杂度的增大,会不断涌现新的设计模式,而这些新的设计模式一般会以GOF模式理论为参照. 2 为什么要学习设计模式 从个人职业规划来考虑.一位软件开发工程师随着编码量的增加,开发经验的增加,软件理论理解的加深,会不由自主地想一些

设计模式(4)Factory工厂设计模式

一.什么是工厂模式 父类决定实例的生成方式,但并不决定索要生成的具体的类,具体的处理全部交给子类负责. 二.解析 1.父类Factory通过模板设计模式,定义create函数的模板,create用于生成其他类,并包含create所需要的两个抽象类createProduct,registerProduct. 2.子类IDCardFactory来实现reateProduct,registerProduct的具体方法. ------------以上完成了类的生成方式. 3.父类Product,定义了在

01_js中常用的设计模式

JS中常见的设计模式 1.单例模式:创建只有一个实例的对象. 2. 工厂模式:有助于消除那些彼此实例化对方的类之间的耦合,改而用一个方法来确定要实例化哪个类. 3.桥接模式:既能把两个对象连接在一起,又能避免二者之间强耦合的方法.桥接元素把两个对象连接起来,同时又允许它们独立变化. 4.组合模式:非常适合用于创建动态的GUI界面,使用这种模式可以达到一条命令就可以在许多对象上激发复杂或递归性的行为. 5.门面模式:用来为对象创建一个更完善的接口. 6.适配器模式:一种可以让现有接口契合实际需要的

Java中常见的设计模式

我在这里稍微总结一下Java中常见的一些设计模式. 1,单例设计模式 单例设计是Java中最常见的模式之一,,它就是要保证程序里边只有一个对象实例.就好比班上都叫他为班长,是因为得保证班上只有一个班长. 单例设计模式的程序设计思想反应的是Java面向对象思想的封装特性.就是为了保证只有一个对象实例,我们私有化它的构造函数,对外只提供一些相关的 公共方法来获得对象实例. 单例设计模式的实现主要分为饿汉式和懒汉式 饿汉式是先对类的对象实例化,随着类的加载对象也加载进来缺点是会造成性能的损耗好处是实现