单态(单例)设计模式

一、单态(单例) 他不会有新的语法参与 只是一种新的设计方法和思路而已

二、单态到底是什么

最终结果就是想要你的类只得到一个对象

  1. 不能让用户在外面new---------------> 封装构造方法
  2. 我们一个对象都得不到--------------> 提供一个方法
  3. 普通的方法外部无法访问-----------> 使用static修饰
  4. 方法中我们可以加判断 ------------> 添加一个属性
  5. 普通属性无法再静态中使用-------> 这个属性也用静态修饰

魔术方法

  1. __construct()     使用new关键字得到对象的时候自动调用
  2. __destruct()      对对象销毁的时候自动调用
  3. __set() 在没有权限赋值的时候自动调用
  4. __get() 在没有权限获取值的时候自动调用
  5. __isset() 在没有权限使用isset函数的时候自动调用
  6. __unset()   在没有权限使用unset函数的时候自动调用
  7. __toString()      将一个对象当作字符串输出的时候自动调用   必须要返回字符串
  8. __invoke()       将对象当作函数调用的时候会自动调用
  9. __call() 调用一个不存在的方法的时候 会自动调用
  10. __callStatic() 调用一个不存在的静态方法的时候会自动调用
  11. __clone()    通过clone关键字得到对象的时候自动调用魔术函数
  12. __autoload() 当我们在实例化一个对象的时候发现类不存在会自动调用此函数补救措施

原文地址:https://www.cnblogs.com/abinlulu/p/9938708.html

时间: 2024-11-07 00:35:34

单态(单例)设计模式的相关文章

构造私有化和单例设计模式

以下的代码对构造方法进行了私有化封装,但这样封装后我们在类外需要实例化对象是会出现错误,因为构造方法是私有的,所以无法实例化. 1 class Singleton{ 2 private Singleton() {} 3 public void print() { 4 System.out.println("hello world"); 5 } 既然在外部不能实例化对象,我们可以在类的内部实例化对象. 1 class Singleton { 2 // 在类的内部进行实例化对象 3 pri

单例设计模式

一:单例设计模式的定义 单例设计模式,顾名思义,就是在整个程序运行过程中,只向外界提供一个对象,这样做可以避免资源的浪费,例如 我们打开回收站或者ppt时,只会启动一个窗口. 单例模式的java实现: 1:饿汉式 1 /** 2 * 3 */ 4 package com.hlcui.singleton; 5 6 /** 7 * @author Administrator 饿汉式单例类 8 */ 9 public class SingletonDemo { 10 // 1:内部创建一个对象 11

iOS 中的单例设计模式

单例设计模式:在它的核心结构中只包含一个被称为单例类的特殊类.例如文件管理中的NSUserDefault,应用程序中的UIApplication,整个应用程序就这一个单例类,负责应用程序的一些操作,单例在那个文件下都能取得到. 通过单例设计模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节省系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的选择. 下面来点实在的,创建单例代码上 方法1:基于线程安全创建一个单例 .h做一下声明 + (id)

设计模式之单例设计模式

一.何为单例设计模式 单例模式,顾名思义就是单个实例,程序中某个类只有一个实例存在.通常实在需要共享某个资源避免资源损耗的情况下使用到的. 二.单例设计模式的代码实现 一说到单例模式的概念,我们首先会想到下面的这种的写法 public class SingleInstance { private static SingleInstance singleInstance; /** * 单例模式 * @return */ public static SingleInstance getSingleI

设计模式整理_单例设计模式

单例设计模式,它确保一个类只有一个实例,并提供一个全局访问点. 由于单例设计模式对应的类只能创建一个对象,因此它所对应的方法必须是static(不是static只有创建对象才能调用). 以下是单例模式的一个经典实现:采用了延迟加载对象的例子. public class Single1 { private static Single1 single; //利用一个静态变量来记录Single1的唯一实例,这里没有直接声明,采用了延迟加载模式. private Single1(){} //把构造器声明

【学习笔记】单例设计模式笔记

单例设计模式是常见的设计模式之一.通过单例实现所需求类在系统中只存在唯一一个实例. 单例设计模式分两种:懒汉单例设计模式和饿汉单例设计模式,两者设计思路一致,实现有微小不同. 实现代码: 1 public class HungryMan { 2 3 private HungryMan(){};//私有的构造方法保证HungryMan类无法在外部使用构造方法实例化 4 private static final HungryMan hungryMan=new HungryMan();//在类内定义一

IOS开发之单例设计模式

本文将从四个方面对IOS开发中的单例设计模式进行讲解: 一.什么是单例设计模式 二.我们为什么要用单例设计模式 三.单例设计模式的基本用法 四.自定义单例设计模式代码的封装 一.什么是单例设计模式 所谓单例,即是单个的实例化对象,保证一个类有且仅有一个实例.通常情况下,当我们对一个类实例化时(如:alloc.new等),并不能保证每次实例化的对象是唯一的实例.那么为了保证该类可在多次实例化的过程中保证内存地址不变,就需要引入单例设计模式. 二.我们为什么要用单例设计模式 1.Singleton

Java——单例设计模式

设计模式:解决某一类问题最行之有效的方法.Java中23种设计模式:单例设计模式:解决一个类在内存中只存在一个对象. 想要保证对象唯一.1,为了避免其他程序过多建立该类对象.先禁止其他程序建立该类对象2,还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象.3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 这三部怎么用代码体现呢?1,将构造函数私有化.2,在类中创建一个本类对象.3,提供一个方法可以获取到该类对象. 对于事物该怎么描述,还怎么描述.当需要将该事物的对象

OC中的单例设计模式及单例的宏抽取

1 // 在一个对象需要重复使用,并且很频繁时,可以对对象使用单例设计模式 2 // 单例的设计其实就是多alloc内部的allocWithZone下手,重写该方法 3 4 #pragma Person.h文件 5 6 #import <Foundation/Foundation.h> 7 @interface Person : NSObject <NSCopying,NSMutableCopying> 8 + (instancetype)sharePerson; // 给类提供一

微信 使用单例设计模式 提供AccessToken 和Jsapi_ticket缓存支持

上一篇 是使用ecache 做的缓存, 有些简单的微信项目并不需要这么复杂,So就想到单例设计模式  首先,我们先定义一个单例对象 import java.util.HashMap; import java.util.Map; /**  *   * @author wangiegie  * @date 2015年9月29日下午8:13:06  * @description  */ public class Singleton { //缓存accessToken 的Map  ,map中包含 一个a