浅析php原型模式

 更新时间:2014年11月25日 14:42:27   投稿:hebedich  
这篇文章主要介绍了浅析php原型模式,需要的朋友可以参考下

原型模式:

用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
应用场景: 类的资源非常多、性能和安全要求,一般和工厂方法结合使用。

复制代码 代码如下:

<?php
/**
 * 原型模式
 */
//声明一个克隆自身的接口
interface Prototype {
    function copy();
}  
//产品要实现克隆自身的操作
class Student implements Prototype {
       //简单起见,这里没有使用get set
    public $school;
    public $major;
       public $name;
       public function __construct($school, $major, $name) {
              $this->school = $school;
              $this->major = $major;
              $this->name = $name;
       }
       public function printInfo() {
              printf("%s,%s,%sn", $this->school, $this->major, $this->name);
       }
    public function copy() {
           return clone $this;
    }
}
$stu1 = new Student('清华大学', '计算机', '张三');
$stu1->printInfo();
$stu2 = $stu1->copy();
$stu2->name = '李四';
$stu2->printInfo();
?>

这里可以看到,如果类的成员变量非常多,如果由外部创建多个新对象再一个个赋值,则效率不高代码冗余也容易出错,通过原型拷贝复制自身再进行微小修改就是另一个新对象了。

设计模式的第一部分,创建型模式就总结完了。下面还有两部分结构型设计模式和行为型设计模式稍后继续。

相关文章

  • PHP如何将数据库查询结果输出为json格式

    PHP如何将数据库查询结果输出为json格式

    JSON数据格式相比xml的解析难度较低,配合Ajax技术的使用使得前端获取数据,呈现数据非常方便,所以下面这篇文章主要给大家介绍了关于PHP如何将数据库查询结果输出为json格式的相关资料,需要的朋友可以参考下
    2022-02-02
  • Laravel使用memcached缓存对文章增删改查进行优化的方法

    Laravel使用memcached缓存对文章增删改查进行优化的方法

    这篇文章主要介绍了Laravel使用memcached缓存对文章增删改查进行优化的方法,结合实例形式分析了Laravel框架中使用memcached缓存实现针对增删改查等操作的优化功能,需要的朋友可以参考下
    2016-10-10
  • php开发文档 会员收费1期

    php开发文档 会员收费1期

    最新项目——会员收费,目的是要以更好的展现形式表现给用户,以及添加了新功能(会员机制)
    2012-08-08
  • PHP安装threads多线程扩展基础教程

    PHP安装threads多线程扩展基础教程

    php5.3或以上,且为线程安全版本。apache和php使用的编译器必须一致,通过phpinfo()查看Thread Safety为enabled则为线程安全版,通过phpinfo()查看Compiler项可以知道使用的编译器,本文给大家介绍PHP安装threads多线程扩展基础教程,需要的朋友参考下
    2015-11-11
  • PHP运用foreach神奇的转换数组(实例讲解)

    PHP运用foreach神奇的转换数组(实例讲解)

    下面小编就为大家分享一篇PHP运用foreach神奇的转换数组(实例讲解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • iOS+PHP注册登录系统 PHP部分(上)

    iOS+PHP注册登录系统 PHP部分(上)

    这篇文章主要介绍了iOS+PHP注册登录系统的PHP部分,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • PHP微信支付开发实例

    PHP微信支付开发实例

    这篇文章主要为大家详细介绍了PHP微信支付开发过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • laravel 去掉index.php伪静态的操作方法

    laravel 去掉index.php伪静态的操作方法

    今天小编就为大家分享一篇laravel 去掉index.php伪静态的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Laravel如何友好的修改.env配置文件详解

    Laravel如何友好的修改.env配置文件详解

    使用laravel框架开发PHP程序,配置框架的.env文件是至关重要的,这个文件上需要配置数据库、数据库用户以及缓存等。下面这篇文章主要给大家介绍了Laravel如何友好的修改.env配置文件的相关资料,需要的朋友可以参考下。
    2017-06-06
  • PHP获取网页标题的3种实现方法代码实例

    PHP获取网页标题的3种实现方法代码实例

    这篇文章主要介绍了PHP获取网页标题的3种实现方法,分别使用CURL、file()函数、file_get_contents实现,需要的朋友可以参考下
    2014-04-04

最新评论