zoukankan      html  css  js  c++  java
  • 数据对象映射模式

    定义:将对象和数据存储映射起来,对一个对象的操作会映射为数据存储的操作
    综合应用实例:在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作,结合使用数据对象映射模式,工程模式,注册模式

    $page = new Page();
    $page->index();

    class Page
    {
    function index()
    {
    $user = IMoocFactory::getUser(1);
    $user->name= 'fango0';
    $this->test();
    }

    function test()
    {
    $user = IMoocFactory::getUser(1);
    $user->moblie = '19123230';
    }
    }

    <?php
    namespace IMooc;

    class User
    {
    public $id;
    public $name;
    public $moblie;
    public $regtime;

    protected $db;

    function __construct($id)
    {
    $this->db = new IMoocDatabaseMySQLi();
    $this->db->connect('127.0.0.1', 'root', 'root', 'test');
    $res = $this->db->query("select * from user limit 1");
    $data = $res->fetch_assoc();
    $this->id = $data['id'];
    $this->name = $data['name'];
    $this->mobile = $data['mobile'];
    $this->regtime = $data['regtime'];
    }

    function __destruct()
    {
    $this->db->query("update user set name = '{$this->name}',mobile='{$this->moblie}',regtime='{$this->regtime}' WHERE id={$this->id}");
    }

    }

    <?php
    namespace IMooc;

    class Factory
    {
    static function getUser($id)
    {
    $key = 'user_'.$id;
    $user = Register::get($key);
    if (!$user)
    {
    $user = new User($id);
    Register::set($key, $user);
    }
    return $user;
    }
    }

    <?php
    namespace IMooc;

    class Register
    {
    protected static $objects;

    static function set($alias, $object)
    {
    self::$objects[$alias] = $object;
    }

    static function get($alias)
    {
    return self::$objects[$alias];
    }

    function _unset($alias)
    {
    unset(self::$objects[$alias]);
    }
    }






  • 相关阅读:
    Excutor线程池
    java-集合学习-底层实现
    java-接口—策略模式
    java开发技巧
    精进之道——为什么要问老师,不遮掩自己的弱点
    如何学习——为什么不想听课
    如何学习——如果差距过大怎么办
    Yii 之控制器响应
    Yii 之控制器创建使用
    PHP 之命名空间
  • 原文地址:https://www.cnblogs.com/phonecom/p/b87453bd8d162c70655462eba7178f76.html
Copyright © 2011-2022 走看看