文档章节

php实现注册器+工厂+单例模式

eatnothing
 eatnothing
发布于 2015/10/18 20:53
字数 133
阅读 170
收藏 7
<?php
//注册器模式
class Register{

    protetcted static $objects;
    //声明一个数组
    static function set($alias,$objects){
        self::objects[$alias]=$objects;
    }
    //销毁对象
    function _unset($name){
        unset($objects[$name]);
    }
    staitc function get($name){
    return self::$objects[$name];
    }
}
//单例模式
class database{
    protected static $db;
    static function getInstance(){
        if(self::$db){
        //如果对象存在则使用,不存在创建
        return self::$db;
        }else{
        return self::$db = new database();
        }
    }

}
//工厂模式
class Factory{

static function createDatabase(){
            //首先获取到创建的对象
    $db = database::getInstance();
    $db->set('db1',$db);
    return  $db;
}
}

$db =Factory::createDatabase();

 

 

© 著作权归作者所有

共有 人打赏支持
eatnothing
粉丝 36
博文 128
码字总数 68736
作品 0
昌平
程序员
加载中

评论(1)

eatnothing
eatnothing
diao
JavaScript设计模式系列一之工厂模式(附案例源码)

文章初衷 设计模式其实旨在解决语言本身存在的缺陷, 目前javaScript一些新的语法特性已经集成了一些设计模式的实现, 大家在写代码的时候,没必要为了用设计模式而去用设计模式, 那么我这边为什...

小钱钱阿圣
2017/09/08
0
0
设计模式梳理(一)

设计模式梳理(一) 总体来说设计模式分为三大类: @案例源码地址:https://gitlab.com/lxqxsyu/DisgnPattern 创建型模式 简单工厂模式 工厂类是整个模式的关键。它包含必要的判断逻辑,能够...

lxq_xsyu
2017/11/02
0
0
JavaScript常用设计模式

设计模式 设计模式是一种在长时间的经验与错误中总结出来可服用的解决方案。 设计模式主要分为3类: 创建型设计模式:专注于处理对象的创建 Constructor构造器模式,Factory工厂模式,Singl...

a独家记忆
07/13
0
0
你需要了解的23种JavaScript设计模式

为什么要学习设计模式? 在许多访谈中,你可能会遇到很多面向对象编程中的接口,抽象类,代理和以及其他与设计模式相关的问题。 一旦了解了设计模式,它会让你轻松应对任何访谈,并可以在你的...

java高级架构牛人
06/02
0
0
设计模式Java Design Pattern-工厂方法模式FactoryMethod

我的博客 一、 设计模式的分类 大体可以分为三类: 创建型模式(5个) 单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式 结构性模式(7个) 适配器模式、装饰器模式、代理模式、...

勇敢写信
03/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

react native 开发碰到的问题

react-navigation v2 问题 问题: static navigationOptions = ({navigation, navigationOptions}) => ({ headerTitle: ( <Text style={{color:"#fff"}}>我的</Text> ), headerRight: ( <View......

罗培海
31分钟前
0
0
Mac Docker安装流程

久仰Docker大名已久,于是今天趁着有空,尝试了一下Docker 先是从docker的官网上下载下来mac版本的docker安装包,安装很简易,就直接拖图标就好了。 https://www.docker.com/products/docker...

writeademo
39分钟前
0
0
TensorFlow rnn mnist 分类

使用rnn 对mnist进行分类 参考 http://www.360doc.com/content/17/0321/10/10408243_638692495.shtml 网络定义 其中最后一层不需要进行sofmax,lstmcell返回的数据是两个,一个是阶段性的,一...

阿豪boy
41分钟前
0
0
使用ELK构建微服务的日志平台

1 概述 在微服务架构中,会部署众多的应用,其中有基础应用,比如:网关,服务发现等。同时还有大量的业务应用。所以,如何有效的收集它们的日志,并且方便查询,同时提供友好的可视化展示,...

Java大蜗牛
49分钟前
0
0
Spring源码阅读——4

BeanDefinitionHolder的创建 Spring框架中BeanDefinition的继承结构如下图: BeanDefinition是配置文件<bean>元素标签在容器中内部表示形式。<bean>元素标签拥有class、scope、lazy-init等配...

叶枫啦啦
57分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部