美文网首页
php - 单列模式 我所认知的和学习的

php - 单列模式 我所认知的和学习的

作者: 破晓丨 | 来源:发表于2018-02-27 23:30 被阅读0次

在我学习php的时候是跟着公司的项目从中间做下去的,半知不解的,把差不多功能的地方找到然后复制过去,看到不懂的语法和函数就去百度,就这样迷迷糊糊的入了php的门。

在之后也对他产生了浓厚的兴趣,从基础的函数语法教程,到购买了一系列的项目教程逐渐做到现在可以承担一个项目的制作和有着自己的网站项目等。

其实中间所走的坑有很多,都是从弯路过的,总是觉的差点什么,直到现在也是这个感觉,所以学习是必须的,对于学习编程不管你是学什么语言,我最大的感触就是不断的去写代码,不断的去练......

以上是我对学习php 的一些感慨,相信这也是it们的共识!
下面我把我对php中 单列模式的概念做下总结,(这是我自己学习的总结):

单列模式在我用的最多的地方就是 对类的实例化,新建一个类,你需要用在很多地方,那你就需要不停的 new 这个类,这样的确是可以的,但是他有很大的一个缺点:

在不断的new这个类创建实例的同时,就会不断的消耗内存,增加过大的消耗。那么单列模式就解决了这个问题

原理:让这个类通过内部静态私有属性存储这个类的唯一实例,然后创建私有的构造方法,使这个类无法被实例化,最后定义静态方法来获取这个类唯一的实例,在外部访问此静态方法进行获取类实例。

代码:

<?php
class internet{
    //定义一个私有的属性来存储类实例
    private  static $_instance = null;
    // 把构造方法私有化 是外部无法 实例化这个类
    private function __construct(){}
    //为了防止魔术方法 clone 也需要私有化
     private function __clone(){}
    // 创建一个静态方法来获取类的唯一实例
     public static function  getInstance(){
            //先判断定义的$_instance 是不是这个类的唯一实例  
            if(!(self::$_instance instanceof self)){
                  // 如果不是唯一实例就赋给他实例 new self() 代表这个类的本身
                   self::$_instance =new  self();
            }
            //否则就直接返回这个静态属性
            return self::$_instance;
      }
}

这样就完成了一个单列模式,那么该怎么调用呢?
$inter = internet::getInstance();
这样就完成了单列模式的调用和使用。你学会了吗?

相关文章

  • php - 单列模式 我所认知的和学习的

    在我学习php的时候是跟着公司的项目从中间做下去的,半知不解的,把差不多功能的地方找到然后复制过去,看到不懂的语法...

  • php 设计模式 ——单列模式

    特点: 1.只能有一个实例 2.必须自行创建这个实例 3.必须给其他对象提这一实例 优点: 1.避免大量的new操...

  • php设计模式之单列模式

    简单的一个单列模式

  • 用php写单列模式

    用单列模式写一个链接数据库的例子 在建立数据库连接之前检查数据库连接是否已经存在,也就是说同一个客户端请求连接数据...

  • 23 Java设计模式系列-单例模式

    单例模式 单列模式是非常常见的设计模式之一,写个笔记,记录一下我的学习过程和心得。 首先了解一些单例模式的定义。 ...

  • php - 工厂模式理解和学习

    前几天写了对单列模式的理解和学习技巧,这只是我个人对于这个开发模式的认识和理解,如果大家有更好的解释可以推荐给我啊...

  • PHP实现一个单列模式

    代码:

  • 单列模式

    单列模式必须用到__new__方法 一定要有返回值 一定要写上超级父类 然后加上cls

  • 单列模式

    1、什么是单列模式 单列模式(Singleton)保证一个类仅有一个实例,并提供一个访问的全局访问点,这种类型的设...

  • 单列模式

    饿汉模式(类加载,静态方法创造): 类加载慢,获取对象快,线程安全。 public class Singleton...

网友评论

      本文标题:php - 单列模式 我所认知的和学习的

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