本篇笔记紧接上篇,继续学习设计模式. 4. 对象创建类设计模式 通过对象创建模式绕开new,来避免对象创建(new)过程中所导致的紧耦合,从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 4.1 Factory Method(工厂方法) 4.1.1 应用场景 在软件系统中,经常面临着创建对象的工作:由于需求的变化,需要创建的对象的具体类型经常变化. 4.1.2 定义与解释 定义一个用于创建对象的接口,让子类决定具体实例化哪个类.Factory Method是的一个类的实例化延迟到子类.(目…
一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心. 这样,你就能一次又一次 地使用该方案而不必做重复劳动. 0. 从面向对象谈起 底层思维与抽象思维: 底层思维要求程序员"向下"思考,去把握机器底层,从微观理解对象构造.这就包含了我们之前所学习的C++基本语法,封装,继承,多态这三大机制以及编译原理的相关内容. 抽象思维要求程序员"向上"思考,考虑如何让世界抽象成代码,这就包括面向对象的思想.设计模式等. 软件工程的复杂性: "建…
前言 主要讲解了ES6对字符串的拓展,包括includes,startsWith和endsWith,另外增加了字符串模板. Start includes()是否包含 startsWith()以什么开头 endsWith()以什么结尾 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ES6-字符串</title> </head> &l…
  概念: 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结.使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计模式使代码编写真正工程化 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样…
面向对象编程的基本原则: 单一职责:一个类,只需要做好一件事 开放封闭:一个类,应该是可扩展的,而不是可修改的 依赖倒置:一个类,不应该强依赖另一个类.每个类对应另外一个类都是可替换的 配置化:尽可能地使用配置,而不是硬编码 面向接口编程:只需要关心接口,不需要关心实现 1.设置类的属性 class ShopProduct { public $title = 'default product'; public $producterMainName = 'main name'; public $p…
就像上一节当中我们讲到的数组工具集一样,如果我们把他看作一个类,来应用,不阻止他new函数的话,这个类我们在整个过程当中我们只是用他来当一个工具.假如每次用都要new一下产生一个新对象的话,就会显得整体很浪费内存,那么能不能让这个对象在整个过程当中只产生一个实例供我们来使用呢,因为只要整个过程一个实例就够用了. 有,那就是单例设计模式. 在说单例设计模式之前,我们来看一下什么是设计模式.所谓的设计模式,就是前人在解决生活中常见问题时,抽象出来的一些思考的方法,这种思考的方法能够加快我们软件的构建…
单例模式要解决的问题就是“如何让这个类只有一个实例”. 我们的web应用中,大量使用了数据库连接,如果反复建立与数据库的连接必然消耗更多的系统资源. 我们如何解决这个问题,建立唯一的数据库连接是必要的方式. 我们又如何知道与这个数据库的连接是否已经建立? 还是需要现在建立? 单例模式可以解决这个问题. 先假设我们需要一个类完成在内存中只有一份的功能,我们该如何做呢? 我们一步一步的使用前面学过的知识来写一个单例的例子. 前面学过,每次用 new 类名 的方式,就可以创建一个对象.我们必须禁止外部…
什么是设计模式? 设计模式只是一种开发思想.不是什么固定的格式. 前人的好的思想,我们后人拿过来用! mixin设计模式: 1.mixin设计迷失可以在不对类的内容的修改前提下,扩展类的功能(添加父类) 2.更加方便的组织和维护不同的组建 3.可以根据开发需要任意调整功能 4.可以避免产生更多的类 缺点: 受继承关系限制,推荐只有两层的继承使用. 1.设计模式-单继承场景 #设计模式-单继承场景 #这样每增加一个水果,都得分别去继承它的父类(方位)(送礼)(去皮) #水果类 class Frui…
1.对象:JS中万物皆对象,它是一个泛指 类:对象的具体的细分 (物以类聚,人与群分.具有相同属性和方法的实例的一个集合总称) 实例:某一个类别中具体的一个事物 对象是一个抽象的概念,类似于我们的自然界:我们自然界中分为了 人类.动物类.植物类...,而我们每一个人都是人类中的一个实例 2.单例模式 对象数据类型的作用:把描述同一个事物(同一个对象)的属性和方法放在一个内存空间下,起到了分组的作用,这样不同事物之间的属性即使属性名相同,相互也不会发生冲突 ->我们把这种分组编写代码的模式叫做&quo…
一.单例模式目的:为了控制对象的数量(只能够有一个,相当于类的计划生育)做法1.将类的构造函数做成私有的2.在类里面做了一个公有的函数来造对象3.将该函数变为静态的4.在函数里面加控制 class Ren { public $name; static public $dx; //静态成员变量用来存储该对象 private function __construct() //把构造函数设置为私有,类的外部就不能用new造对象了 { } static function DuiXiang() //做一个…