最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
php設計模式下

1 數據對象映射模式

創(chuàng)新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站設計、網站制作、昌都網絡推廣、成都微信小程序、昌都網絡營銷、昌都企業(yè)策劃、昌都品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯為所有大學生創(chuàng)業(yè)者提供昌都建站搭建服務,24小時服務熱線:028-86922220,官方網址:www.cdcxhl.com

1數據對象映射模式,是將對象和數據存儲映射起來,對一個對象的操作會映射為對數據存儲的操作

2在代碼中實現數據對象映射模式,我們實現一個ORM類,將復雜的SQL語句映射成對象屬性的操作

3結合使用數據對象映射模式、工廠模式、注冊模式

例子:

User.php

namespace IMooc;

class User

{

public $id;

public $name;

public $mobile;

public $regitime;

protected $db;

// 讀取 

function __construct($id){

$this->db = new \IMooc\Database\MySQL();

$this->db->connect('127.0.0.1','root','root','test');

$res = $this->db->query('select * from user limit 1');

$data = $res->fetch_assos();

$this->id = $data['id'];

$this->name = $data['name'];

$this->mobile = $data['mobile'];

$this->regitime = $data['regitime'];

}

// 可以在析構夠 執(zhí)行 修改 插入 刪除

function __destruct(){

// 更新SQL

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

}

}

index.php

$user = new User(1);

$user->mobile = '13880425377';

$user->name ='test';

$user->regtime = time();

var_dump($user->id,$user->name);

// 對對象的數據的讀寫

2 數據映射的復雜案例

index.php

class Page

{

function index()

{

}

$user = new \IMooc\User(1);

$user->mobile = '13880425377';

$user->name ='test';

$user->regtime = time();

}

工廠模式、注冊器模式、單立模式

9 觀察者模式

1 觀察者模式(Observer),當一個對象狀態(tài)發(fā)生改變時,依賴它的對象全部會收到通知,并自動更新

2 常見:一個事件發(fā)生后,要執(zhí)行一連串更新操作,傳統的編程方式,就是在時間的代碼之后直接加入處理邏輯,當更新的邏輯增多之后,代碼會變得難以維護,這種方式是耦合的,侵入式的,增加新的邏輯需要修改主體的代碼

3 觀察者模式實現了低耦合,非侵入式的通知于更新機制。

index.php

class Event extentd \IMooc\EventGenerator

{

function trigger()

{

echo 'Event
';

echo '邏輯1
';

echo '邏輯2
';

$this->nodtify();

}

}

$event = new Event;

$event->trigger();

// 傳統之上;  高度耦合,侵入式;

EventGenerator.php

namespace IMooc;

abstract class EventGenerator

{

protected $observers = array();

function addObserver(Observer$observer){

}

function notefy(){

foreach($this->observers as $observer){

$observer->update();

}

}

}

Observer.php

namespace IMooc;

interface Observer

{

function update($event_info=null);

}

class Observer1 implements \IMooc\Observer

{

function update()

{

}

}

10 原型模式

1 與工廠模式作用類似,都是用來創(chuàng)建對象

2 與工廠模式的實現不同,原型模式是先創(chuàng)建好一個原型對象,然后通過clone原型對象來創(chuàng)建新的對象,這樣就免去了類創(chuàng)建時重復的初始化操作

3 原型模式適用于大對象的創(chuàng)建,創(chuàng)建一個大對象需要很大的開銷,如果每次new就會消耗很大,原型模式僅需內存拷貝即可。

// 原型模式

class Canvas{

// 模擬畫布

function init(){

echo 'init';

}

function draw(){

echo 'draw';

}

}

$canvas1 = new Canvas;

$canvas1->init();// 如果初始化消耗系統資源多

$canvas1->draw();

// 原型對象初始化  這樣就少了初始化 

$prototype = new Canvas;

$prototype->init();

$canvas2 = clone $prototype;

$canvas2->draw();

$canvas3 = clone $prototype;

$canvas3->draw();

11 裝飾器模式

1 裝飾器模式(Decorator),可以動態(tài)地添加修改類的功能

2 一個類提供了一項功能,如果要在修改并添加額外的功能,傳統的編程模式,需要寫一個子類集成它,并重新實現類的方法

3 使用裝飾器模式,僅需要在運行時添加一個裝飾器對象即可實現,可以實現最大的靈活性。

12 迭代器模式

1 在不需要了解內部實現的前提下,遍歷一個聚合對象的內部元素

2 相比于傳統的編程模式,迭代器模式可以隱藏遍歷元素所需的操作


當前題目:php設計模式下
文章URL:http://fisionsoft.com.cn/article/jidgsi.html