<?php// 数据对象映射模式
class User
{public $id;public $name;public $mobile;public $regtime;private $dataFile;public function __construct($id){$this->dataFile = "user.$id.data";if(file_exists($this->dataFile)) {$data = json_decode(file_get_contents($this->dataFile), 1);$this->name = $data['name'];$this->mobile = $data['mobile'];$this->regtime = $data['regtime'];}}public function __destruct(){return file_put_contents($this->dataFile, json_encode(['name' => $this->name,'mobile' => $this->mobile,'regtime' => $this->regtime]));}
}// 结合注册器模式
class Register
{private static $object;public static function get($key){return isset(self::$object[$key]) ? self::$object[$key] : false;}public static function set($key, $obj){self::$object[$key] = $obj;}
}// 结合工厂模式
class Factory
{public static function getUser($id){if(!$user = Register::get($id)) {$user = new User($id);Register::set($id, $user);echo "register set \n";}return $user;}
}class Page
{public function index(){$user = Factory::getUser(1);$user->mobile = '15165854585';$user->name = 'test';$user->regtime = time();}public function test(){$user = Factory::getUser(1);$user->mobile = '15165854585';$user->name = 'test23333';$user->regtime = time();}
}$page = new Page;
$page->index();
$page->test();

PHP 设计模式之数据对象映射模式相关推荐

  1. PHP 设计模式 笔记与总结(9)数据对象映射模式

    [数据对象映射模式] 是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作.例如在代码中 new 一个对象,使用数据对象映射模式就可以将对象的一些操作比如设置一些属性,就会自动保存到数 ...

  2. sql中如何统计各种零件的总数量_如何应用GOF设计模式中的构建者模式创建复合对象实例...

    软件项目实训及课程设计指导--如何应用GOF设计模式中的构建者模式创建复合对象实例 1.GOF设计模式中的构建者模式 构建者设计模式能够将一个复杂对象(它一般为组合类)的构建过程与它的表示部件相互分离 ...

  3. xml对象映射_将对象映射到多个XML模式–天气示例

    xml对象映射 我已经在EclipseLink JAXB(MOXy)的@XmlPath和外部绑定文件扩展中撰写了以前的文章. 在本文中,我将通过将单个对象模型映射到两个不同的XML模式来演示这些扩展的 ...

  4. 将对象映射到多个XML模式–天气示例

    我已经在EclipseLink JAXB(MOXy)的@XmlPath和外部绑定文件扩展中撰写了以前的文章. 在本文中,我将通过将单个对象模型映射到两个不同的XML模式来演示这些扩展的功能. 为了使示 ...

  5. php 数据映射,数据映射模式(Data Mapper)

    数据映射模式(Data Mapper) 由 学院君 创建于5年前, 最后更新于 8个月前 版本号 #3 12934 views 7 likes 0 collects 1.模式定义 在了解数据映射模式之 ...

  6. ES6/04/严格模式,开启严格模式,严格模式与普通模式对比发生了那些变化,高阶函数,闭包函数,递归函数,递归实例(1,阶乘,2,斐波那契数列,3,根据id返回对应数据对象),浅拷贝和深拷贝

    函数 开启严格模式 1,用 " use strict"; 语句为整个脚本(即:script标签)开启严格模式;在<script>标记的第一行写上"use st ...

  7. 游戏设计模式阅读笔记18——优化模式(对象池模式)

    目录 一.意图 二.动机 三.对象池模式 四.实例代码 五.注意 1.对象和池耦合的问题 一.意图 放弃单独地分配和释放对象,从固定的池中重用对象,以提高性能和内存使用率. 二.动机 比如粒子系统的调 ...

  8. 李建忠设计模式之“对象创建”模式

    文章目录 工厂方法模式(Factory Method) 定义 动机 结构图 代码 要点 总结 抽象工厂模式(Abstract Factory) 定义 动机 结构图 代码 要点 总结 原型模式(Prot ...

  9. Java 设计模式 Adapter 对象适配器 模式

    Java 设计模式 Adapter 对象适配器 模式 Adapter模式用于现有的程序无法直接使用,需要做适当的变换之后才能使用的情况. 涉及到的角色 Target对象:定义所需的方法. Client ...

最新文章

  1. js的闭包与原型记录
  2. windows错误:Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.
  3. 【勉强采用】反欺诈四大手段一秒get
  4. volatile、synchronized、(原子、可见、有序)、先行发生原则
  5. 如何为 Horizon View 配置 VMware VSAN?
  6. python 短网址_Python实现短网址ShortUrl的Hash运算实例讲解
  7. [读书笔记]TCP/IP详解V1读书笔记-4 5
  8. 设计模式(一)预备知识
  9. 这套网红试卷火了!数学老师您应该是文案出身吧?
  10. 如何输入一个整数逆序输出_如何理解运算放大器的共模输入和输出摆幅限制?...
  11. Android安卓|安卓概述、安卓开发、安卓入门、安卓架构
  12. 从博客复制程序到VS里面出现span style=font-size:24px;strong
  13. 分享Qt的面试题目(或许未来的我能用的上呢)_vortex_新浪博客
  14. 向CentOS6.6服务器安装confluence5.4.4
  15. 浙江大学黄杨思博计算机学院,浙江大学节能减排社会实践与科技竞赛成功-浙江大学本科生院.DOC...
  16. android程序联网失败,请检查网络是否可用
  17. oracle表级附加日志视图,Oracle 附加日志(supplemental log)
  18. 【Lv1-Lesson004】Imperative Sentences
  19. 【飞书集成自建应用教程】
  20. 艺赛旗RPA8.0-用户体验提升抢先看(一)

热门文章

  1. eclipse mybatis插件_Archetype插件的介绍和使用
  2. struts1跳入指定方法
  3. liferay 几个工具类
  4. JAVA16版本.JDK16关于TCP和UDP的优化
  5. C#项目评审提问问题集锦
  6. sql SERVER 模拟试题
  7. 攻防演练中的业务逻辑漏洞及检测思路
  8. 【slighttpd】基于lighttpd架构的Server项目实战(4)—简单的echo服务器
  9. DJANGO MODELS通过DATETIMEFIELD保存到MYSQL的时间的时区问题
  10. C#实现最简单的收银系统