码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式简介

时间:2017-03-31 11:49:26      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:技术分享   style   cti   opened   方式   统一   连接数据库   instance   客户端   

 

 

单例模式

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例

关键字 : 三私一公

<?php

class DB {
    //静态变量保存全局实例
    private static $_instance = null;
    //私有构造函数,防止外界实例化对象
    private function __construct() {
        $this->conn();
    }
    //私有克隆函数,防止外界克隆对象
    private function __clone() {
    }
    //静态方法,单例统一访问入口
    static public function getInstance() {
        if (!(self::$_instance instanceof self)) {
            self::$_instance = new self ();
        }
        return self::$_instance;
    }
    public function conn() {
        //连接数据库
    }
}

 

桥接模式

将抽象部分与具体实现相分离

技术分享
<?php

class Info{
    public $lev; //发送等级:普通,重要,特级
    public $target;//通过什么方式发送
    //实际发送方法
    public function Sending($to,$content){
        //先把消息等级确定了
        $content = $this->lev->msg($content);
        $target = $this->target->send($to);
        return $target.$content;
    }
}

//普通消息
class CommonInfo {
    public function msg($content){
        return ‘普通消息:‘ . $content;
    }
}

//重要消息
class ImportInfo {
    public function msg($content){
        return ‘重要消息:‘ . $content;
    }
}

//特别消息
class SpecialInfo {
    public function msg($content){
        return ‘特别消息:‘ . $content;
    }

}

//站内发送方式
class ZnSend {
    public function send($to){
        return ‘站内发给‘. $to;
    }
}

//QQ发送方式
class QQSend {
    public function end($to){
        return ‘QQ发给‘. $to;
    }
}

//Email发送方式
class EmailSend {
    public function send($to){
        return ‘邮箱发给‘. $to;
    }
}

$info = new Info();//实例化桥接类
$info->target = new ZnSend(); //实例化发送方式
$info->lev = new CommonInfo();//实例化消息等级
print_r($info->Sending(‘小明‘,‘回家吃饭‘));//调用桥接类方法Sending,让ZnSend类和CommonInfo类结合
//output:站内发给小明普通消息:回家吃饭
View Code

 

 

组合模式

将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性

 

外观模式

为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

 

设计模式简介

标签:技术分享   style   cti   opened   方式   统一   连接数据库   instance   客户端   

原文地址:http://www.cnblogs.com/tanxing/p/6650522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!