zoukankan      html  css  js  c++  java
  • PHP中的工厂方法模式

    PHP手册中的工厂方法

    •使用工厂来替换new操作

    •思路:动态的根据传递的数据,新建相应的类的对象。

    •<?php
    class Example
    {
        // The parameterized factory method
        public static function factory($type)
        {
            if (include_once 'Drivers/' . $type . '.php') {
                $classname = 'Driver_' . $type;
                return new $classname;
            } else {
                throw new Exception('Driver not found');
            }
        }
    }
    ?>

    •<?php
    // Load a MySQL Driver
    $mysql = Example::factory('MySQL');
    // Load an SQLite Driver
    $sqlite = Example::factory('SQLite');
    ?>

    GOF的工厂方法模式

    •简单工厂模式---工厂方法模式

    •工厂方法模式是创建型模式的一种

    •意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式能使一个类的实例化延迟到其子类。

    image

    工厂方法实现

    适用的需求

    •1 生成”简历”或者”报告”两种文档格式

    •2 简历文档页面:

    –技能页 + 教育经历页 + 工作经历页

    •3 报告文档页面:

    –介绍页面 + 阐述结论页面 + 总结页

    •4 以后很有可能增加新的文档格式,新的文档格式可能会有新的文档页面

    •1 创建document类

    •2 创建继承于document的Report类和Resume类

    •3 创建page类

    •4 创建继承于page的SkillsPage,EducationPage,ExperiencePage类

    •5 创建继承于page的IntroductionPage,ResultPage,SummaryPage类

    •Document类的实现

    image

    •Resume类实现

    image

    •Program

    image

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    第04组 beta冲刺(1/4)
    2019 SDN上机第5次作业
    SDN课程阅读作业(2)
    第04组 Alpha事后诸葛亮
    C Primer 复习题
    C Primer 编程练习
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    Appium + java截图方法
  • 原文地址:https://www.cnblogs.com/yjf512/p/2011916.html
Copyright © 2011-2022 走看看