PHP 设计模式之数据对象映射模式
<?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 设计模式之数据对象映射模式相关推荐
- PHP 设计模式 笔记与总结(9)数据对象映射模式
[数据对象映射模式] 是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作.例如在代码中 new 一个对象,使用数据对象映射模式就可以将对象的一些操作比如设置一些属性,就会自动保存到数 ...
- sql中如何统计各种零件的总数量_如何应用GOF设计模式中的构建者模式创建复合对象实例...
软件项目实训及课程设计指导--如何应用GOF设计模式中的构建者模式创建复合对象实例 1.GOF设计模式中的构建者模式 构建者设计模式能够将一个复杂对象(它一般为组合类)的构建过程与它的表示部件相互分离 ...
- xml对象映射_将对象映射到多个XML模式–天气示例
xml对象映射 我已经在EclipseLink JAXB(MOXy)的@XmlPath和外部绑定文件扩展中撰写了以前的文章. 在本文中,我将通过将单个对象模型映射到两个不同的XML模式来演示这些扩展的 ...
- 将对象映射到多个XML模式–天气示例
我已经在EclipseLink JAXB(MOXy)的@XmlPath和外部绑定文件扩展中撰写了以前的文章. 在本文中,我将通过将单个对象模型映射到两个不同的XML模式来演示这些扩展的功能. 为了使示 ...
- php 数据映射,数据映射模式(Data Mapper)
数据映射模式(Data Mapper) 由 学院君 创建于5年前, 最后更新于 8个月前 版本号 #3 12934 views 7 likes 0 collects 1.模式定义 在了解数据映射模式之 ...
- ES6/04/严格模式,开启严格模式,严格模式与普通模式对比发生了那些变化,高阶函数,闭包函数,递归函数,递归实例(1,阶乘,2,斐波那契数列,3,根据id返回对应数据对象),浅拷贝和深拷贝
函数 开启严格模式 1,用 " use strict"; 语句为整个脚本(即:script标签)开启严格模式;在<script>标记的第一行写上"use st ...
- 游戏设计模式阅读笔记18——优化模式(对象池模式)
目录 一.意图 二.动机 三.对象池模式 四.实例代码 五.注意 1.对象和池耦合的问题 一.意图 放弃单独地分配和释放对象,从固定的池中重用对象,以提高性能和内存使用率. 二.动机 比如粒子系统的调 ...
- 李建忠设计模式之“对象创建”模式
文章目录 工厂方法模式(Factory Method) 定义 动机 结构图 代码 要点 总结 抽象工厂模式(Abstract Factory) 定义 动机 结构图 代码 要点 总结 原型模式(Prot ...
- Java 设计模式 Adapter 对象适配器 模式
Java 设计模式 Adapter 对象适配器 模式 Adapter模式用于现有的程序无法直接使用,需要做适当的变换之后才能使用的情况. 涉及到的角色 Target对象:定义所需的方法. Client ...
最新文章
- js的闭包与原型记录
- windows错误:Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.
- 【勉强采用】反欺诈四大手段一秒get
- volatile、synchronized、(原子、可见、有序)、先行发生原则
- 如何为 Horizon View 配置 VMware VSAN?
- python 短网址_Python实现短网址ShortUrl的Hash运算实例讲解
- [读书笔记]TCP/IP详解V1读书笔记-4 5
- 设计模式(一)预备知识
- 这套网红试卷火了!数学老师您应该是文案出身吧?
- 如何输入一个整数逆序输出_如何理解运算放大器的共模输入和输出摆幅限制?...
- Android安卓|安卓概述、安卓开发、安卓入门、安卓架构
- 从博客复制程序到VS里面出现span style=font-size:24px;strong
- 分享Qt的面试题目(或许未来的我能用的上呢)_vortex_新浪博客
- 向CentOS6.6服务器安装confluence5.4.4
- 浙江大学黄杨思博计算机学院,浙江大学节能减排社会实践与科技竞赛成功-浙江大学本科生院.DOC...
- android程序联网失败,请检查网络是否可用
- oracle表级附加日志视图,Oracle 附加日志(supplemental log)
- 【Lv1-Lesson004】Imperative Sentences
- 【飞书集成自建应用教程】
- 艺赛旗RPA8.0-用户体验提升抢先看(一)