魔术方法、抽象类、接口 、面向对象设计模式 的解析

一:魔术方法:

    1》构造方法:__construct()

       特点:new的时候自动调用,第一个调用

    2》析构方法:__destruct()

       特点:最后一个调用,清理内存,变量被销毁前调用,释放资源

      

    3》克隆方法:__clone()

       特点:当在类外出现clone 对象的时候调用克隆方法,会把你的属性和方法克隆出来

       防止克隆发放:把克隆方法改成私有的方法

    4》__toString()

       特点:在类外输出对象的时候自动调用的方法

       注意:__toString方法里必须return 字符串

   5》__get(1) 不存在或者权限不够的属性

       特点:当在类外调用不存在或者权限不够的属性的时候自动调用的方法

       权限不够:受保护的,私有的   不存在:未定义

    6》__set(2) 不存在或者权限不够的属性 改它赋的值

       特点:在类外给不存在或者权限不够的属性设置值的时候自动调用的方法

       注意:在__set()方法里 $this->不存在或者权限不够的属性 = 值

    7》__isset(1) 不存在或者权限不够的属性

       特点:在类外检测不存在或者权限不够的属性自动调用的方法

       出现:isset(属性名) empty(属性名)

    8》__unset(1) 不存在或者权限不够的属性

       特点:在类外出现销毁不存在或者权限不够的属性自动调用的方法

       出现:unset(属性名)

    9》__call(2) 不存在的方法名,往方法里传的数组

       特点:在类外访问不存在的方法的时候自动调用的方法

       第一个参数是不存在的方法名,第二个是传的数组

    10》自动加载类的方法:__autoload(1) 类文件名/类名

       特点:自动加载类文件

       注意:类文件名和类名相同

       比如说:类文件名:aa.class.php

               类名:class aa{}

 

二  抽象类、接口

 

抽象类:

  定义:只要类中有一个方法是抽象的,那么这个类就是抽象类

  定义抽象类的关键字:abstract

  特点:

       1》抽象类不能直接实例化,只能被继承 

       2》抽象类中抽象方法名称只能定义公共的、受保护的

       3》抽象类中可以有属性、普通方法

       4》抽象类中定义n个抽象方法名称,子类继承就得>=n个方法

       5》子类继承的时候方法权限只能比抽象更宽松

       6》定义抽象类的关键字:abstract

       7》继承关键字:extends

      

接口:

   定义:有时候数据需要跨服务器端传输,需要提供开放数据引入接口

   定义接口的关键字:interface

   特点:

      1》接口不能直接使用,只能被继承

      2》接口中方法只能定义成公共的  ***

      3》接口中定义n个方法名称,子类继承的时候就得>=n个方法

      4》接口解决了php单继承的问题,实现多继承

      5》定义接口的关键字:interface

      6》继承关键字:implements

 

     

抽象类和接口的区别:

    1》抽象类:单继承

       接口:可以多继承

    2》抽象类:抽象方法可以是公共的/受保护的

       接口:必须公共的

    3》抽象类:定义关键字:abstract 继承关键字:extends

       接口:定义关键字:interface 继承关键字:implements

 

序列化和反序列化

   之前取类里的方法需要实例化得到对象调用方法,每次都new占据内存,

   所以引入序列化serialize(对象)和file_put_contents(文件名,序列化后的对象)

   下个页面在文件里取出file_get_contents(文件名)反序列化unserialize(序列化的对象)成对象,在调用方法

   主要目的:经常使用的方法,不用每次都new 存文件里,减少内存

 

 

 三  面向对象设计模式  

     1  策略(Strategy)模式

     2  工厂(Factory)模式

     3  观察者(Observer)模式

     4  观察者(Observer)模式

 

 

 

单例模式:

       是什么:是一种设计模式,一个类只能实例化一次,只能有一个

               对象。

       为什么:只new一次,节省空间资源

       怎么做:三私一公

 

                 ①私有的构造方法

                 ②私有的克隆方法  防止克隆——clone

                 ③私有的静态属性  储存生成的唯一对象

                 ④公共的静态方法  用来访问静态属性储存的对象,如果没有对象,则生成此单例

             

        关键词 instanceof 检查此变量是否为该类的对象、子类、或是实现接口。

原文地址:https://www.cnblogs.com/liujunyue/p/11320781.html