美文网首页
设计模式

设计模式

作者: 空留灯半盏 | 来源:发表于2018-06-25 16:50 被阅读0次

设计模式

1 . 单例模式

/**
三私一公
*私有的静态属性:保存类的单例
*私有的__construct():阻止在类的外部实例化
*私有的__clone():阻止在类的外部clone对象
*共有的静态方法:获取类的单例
*/
class MySQLDB {
    private static $instance;   //保存类的单例
    private function __construct() {    //阻止在类的外部实例化
    }
    private function __clone() {    //阻止在类的外部clone对象
    }
    //获取当前类的单例
    public static function getInstance() {
        if(!self::$instance instanceof self)//$instance中保存的不是MySQLDB类的单例就实例化
            self::$instance=new self();
        return self::$instance; //返回单例
    }
}
//测试
$db1=MySQLDB::getInstance();
$db2=MySQLDB::getInstance();
var_dump($db1,$db2);

特点:

1\ 一个类只能有一个对象
2\ 实现三私一共
3\ instanceof:判断对象是否是类数据类型

2 . 工厂模式

特点:

传递不同的参数获取不同的对象
<?php
class ProductsA {
    public function show() {
        echo '商品A<br>';
    }
}
class ProductsB {
    public function show() {
        echo '商品B<br>';
    }
}
//工厂模式
class ProductsFactory {
    public static function create($num) {   //传递不同的参数获取不同的对象
        switch($num) {
            case 1:
                return new ProductsA;
            case 2:
                return new ProductsB;
            default:
                return null;
        }
    }
}
//测试
$obj1= ProductsFactory::create(1);
$obj2= ProductsFactory::create(2);
$obj1->show();      //商品A
$obj2->show();      //商品B

3 . 策略模式

特点:

传递不同的参数,调用不同的方法;
<?php
class Walk {
    public function method() {
        echo '走着去<br>';
    }
}
class Bus {
    public function method() {
        echo '坐车去<br>';
    }
}
class Strategy {
    public function way($obj) { 
        $obj->method(); //传递不同的参数调用不同的方法
    }
}
//测试
$strategy=new Strategy();
$strategy->way(new Walk); //走着去
$strategy->way(new Bus); // 坐车去

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

      本文标题:设计模式

      本文链接:https://www.haomeiwen.com/subject/vxwyyftx.html