随笔分类 - 面向对象
摘要:设计模式之适配器模式 场景:其实最简单的例子是当我们引用一个第三方类库。这个类库随着版本的改变,它提供的API也可能会改变。如果很不幸的是,你的应用里引用的某个API已经发生改变的时候 适配器模式核心思想:把对某些相似的类的操作转化为一个统一的“接口”(这里是比喻的说话)--适配器,或者比喻为一个“
阅读全文
摘要:设计模式之策略模式 策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中, 此模式让算法的变化独立于使用算法的客户。从而让程序结构更灵活,具有更好的扩展性和维护性 在实际场景中,通俗的说就是提供多个策略的模式,用户在不同的情况下可以选择不同的策略 abstract Man { publi
阅读全文
摘要:命名空间 PHP 命名空间可以解决以下两类问题: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。(解决命名冲突) 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。(重命名) 定义命名空间 默认情况下,所有常量、
阅读全文
摘要:面向对象之类型提示 “参数默认情况下也可以包含任何类型的对象。这种灵活性有它的好处,但是在方法定义中可能出现一些问题,为了解决这个问题(没有强制要求参数类型),PHP5引入了类的类型提示(type hint)。要增加几个方法参数的类型提示,只需简单地将类名放在需要约束的方法参数之前” class S
阅读全文
摘要:面向对象之静态延迟绑定 static类似self,但它指的是被调用的类而不是包含类 在说这个"延迟静态绑定"前,我们先温习一个函数get_called_class; get_called_class 获取静态方法调用的类名。 返回值:返回类的名称,如果不是在类中调用则返回 false; 实例代码:
阅读全文
摘要:面向对象之继承 一、什么是继承 对象的继承是指从一个类派生出另外的一个类的过程,就像孩子是从父母那里继承品性一样。 关键字 extends PHP只能有一个父类 关键词 instanceof 可以用来查看一个特别的对象是不是属于一种特定的类的类型 require 'demo.class.php';
阅读全文
摘要:面向对象之trait 场景 一个web站点,它有很多不同的类:用户(User)、页面(Page)、联系表单(ContactFrom)等。我们可能需要在每个类中添加一个方法的定义,但是这样的话就会造成不必要的代码冗余,并且一旦对该方法的定义有所修改,就需要改一大堆东西。 那我们能不能里用继承来实现上面
阅读全文
摘要:面向对象之常量和静态属性 一、类常量 定义 const PI = 3.14; 在类外部可以使用define和const定义常量.但在类内部只能使用const定义常量. 定义常量名称一般都大写,这是一个约定. 如果定义的常量有多个单词组成,使用_连接,这也是约定。 调用 class Math { co
阅读全文
摘要:问题 很多类里面用很多方法你不断的在重复写。 我不是可以重写一个类每个公共类我个实例化一个这个公共类,调用相同的方法就可以了 抽象类做的工作也就是这个,不过他省去了你实例化的这个步骤 比如人必须吃饭,约会一般要吃饭、看电影,但不一定表白 1、抽象类不能实例化 2、抽象类存在的目的是为了让子类继承 3
阅读全文
摘要:一、什么是类的自动加载 类的自动加载就是我们在实例化一个类的时候,不需要每次都手动去'require'来这个类文件,程序自动帮我们加载导入进来。 只要对应的类文件存在,并且命名符合规范(类名与文件名一致),直接调用即可 二、魔术方法__autoload //定义一个函数,功能自动加载类文件,它自己会
阅读全文
摘要:系统在特定的时机自动调用的方法 1、__get 触发时机:对象在外部访问私有成员或者受保护属性时调用 该方法有一个参数:参数就是属性名 2、__set 触发时机:对象在外部设置私有或者受保护成员属性值得时候调用 该方法有两个参数: 参数1:成员属性名 参数2:要设置的值 class Person {
阅读全文
摘要:1、什么叫面向? 面向即看待。把我们所能客观看到的一切事物都抽象成一个对象。也就是所说的“万物皆对象”。其主要思想就是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为。 通俗点:开发一套程序和装修一个房子一样,房子里电视、
阅读全文
摘要:为什么要工厂模式 有些类很常用,我们会在很多地方进行实例化。假如有一天这个类名突然有天要修改,是不是惆怅? 我想根据参数条件来调用对应的对象。有点像switch干的活。这样就简化了逻辑,统一控制,代码也比较简化。 一、简单工厂 namespace DesignPatterns\SimpleFacto
阅读全文
摘要:它是一种事件系统,意味着这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作;观察者模式提供了避免组件之间的紧密耦合的另一种方法。 header('content-type:text/html;charset=utf-8'); # 被观察对象 i
阅读全文
摘要:单例模式【Single】 单例模式在面向对象开发中比较常用,也是最简单的一种模式。单例就是单个实例,单个对象的意思。就是我们去实例化一个类的时候,不管调用多少次,都永远只有一个实例。这样就节省内存分配开支 原理 将构造函数__construct设置为私有的private,对外提供一个静态方法.一般是
阅读全文