zoukankan      html  css  js  c++  java
  • 初识设计模式(1)---单例、工厂、注册树

    1、单例模式:单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

    小示例:

     1 <?php
     2 class DataBase
     3 {
     4     static $instance = null;
     5 
     6     private function __construct(){//构造方法私有,使外部不能示例
     7     }
     8     public static function getInstace(){//开放一个接口,让外界获取唯一的实例;
     9         if (!self::$instance instanceof self) {
    10             self::$instance = new self;
    11         }
    12         return self::$instance;
    13     }
    14 
    15 }
    16 ?>

    2、工厂模式:是用工厂方法来代替 new 操作,达到封装,以减少修改量。

     1 //工厂模式示例
     2 //在工厂类里面创建new database类的方法,并返回实例化的对象;
     3 <?php
     4 class Factory{
     5     static function createDb(){
     6         $db = new DataBase();
     7         return $db;
     8     }
     9 {
    10 ?>
    11 
    12 //使用时直接调用,工厂类的对应方法获得需要类的实例,这样的话后期如果需要修改相应类的名称等,只需修改工厂类中对应方法的new操作;
    13 <?php
    14 $db = Factory::createDb();
    15 ?>

    3、注册树模式,将实例对象放入一个全局数组中,以供直接调用。

    如工厂模式中的实例对象,通过注册模式注册在注册树上,使用时直接从注册树上调用

     1 <?php
     2 //注册树模式简单示例
     3 class register{
     4     protected static $objects = array();
     5     //注册到注册树
     6     public function set($function,$object){
     7         self::$objects[$function] = $object;
     8 }
     9     //从注册树调用
    10     public function get($function){
    11         return  self::objects[$function];
    12     }
    13 }
    14 ?>    
  • 相关阅读:
    存储:块存储/文件存储/对象存储
    系统调用system call以及strace/dtruss
    JBoss EAP应用服务器部署方法和JBoss 开发JMS消息服务小例子
    在IE中,JS方法名和input的name重名时,调用该方法无效
    html 使表格随着内容自动适应宽度
    Jboss 安全和优化
    java网页数据抓取实例
    Eclipse+Weblogic 12开发简单的Enterprise Application
    eclipse中整合ejb和web工程
    破解 jar 包之直接修改 .class 文件方式
  • 原文地址:https://www.cnblogs.com/lilili/p/5146846.html
Copyright © 2011-2022 走看看