一、什么是分类? 概念:分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体指针。根据下面源码组成可以看到它没有属性列表,原则上是不能添加成员变量(其实可以借助运行时功能,进行关联),只能增加方法。 分类的声明: 分类的实现: 作用:主要作用是为已经存在的类添加方法。在不改变原有 ...
分类:
移动开发 时间:
2018-12-07 23:25:44
阅读次数:
285
1:什么是可变数据类型和不可变数据类型: 可变数据类型:value值改变,id值不变(即变量的内存地址不改变),即修改变量的值还在原来的内存中修改,不用重新创建一个对象,分配一块内存; 不可变数据类型:value值改变,id值也随之改变(即变量的内存地址也改变),即原来内存中的值不能修改,修改变量的 ...
分类:
编程语言 时间:
2018-12-07 01:29:04
阅读次数:
191
[TOC] 装饰器的作用 在不改变 原函数(对象)本身和原函数(对象)的调用方式 的情况下, 为其添加额外的功能. 再简单点说, 装饰器的作用就是 为已经存在的函数或对象添加额外的功能 . 装饰器的使用 在 被装饰函数 的上方写 , 这里的符号 是必须的, 是你定义的装饰器的名字. 装饰器(版本一) ...
分类:
编程语言 时间:
2018-12-04 22:31:28
阅读次数:
246
1.装饰器 ? 装饰器:在不改变原函数的调用方式和函数,额外的增加功能 简单装饰器 def timer(func): def inner(): print(time.time()) func() # 原来的函数 return inner ? @timer # func1 = timer(func1)... ...
分类:
其他好文 时间:
2018-12-04 22:30:02
阅读次数:
235
1、引入echarts插件: import * as echarts from '../../ec-canvas/echarts'; 2、data中定义: ecBar: { onInit: initChart }, 3、app.js中定义全局变量: globalData: { userInfo: n ...
分类:
微信 时间:
2018-12-04 13:03:54
阅读次数:
2102
这里所谓的与第三方AOP框架的整合不是说改变Dora.Interception现有的编程,而是恰好相反,即在不改变现有编程模式下采用第三方AOP框架或者自行实现的拦截机制。虽然我们默认提供基于IL Emit实现方式,并且对IL指令进行了深度的优化,但是如果我们真的具有更好的选择,我们可以通过简单的扩 ...
分类:
Web程序 时间:
2018-12-02 14:24:42
阅读次数:
209
模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在现实中,很多事情都有相同的实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、递东西、买单等几个步骤,通常是:点单-吃东西-买单。这3个步骤中,点单和买单 ...
分类:
其他好文 时间:
2018-12-02 14:24:12
阅读次数:
157
我们知道,在不改变原有代码的基础上,我们可以使用装饰器为函数添加新的功能。同理,一切皆对象,我们也可以使用装饰器为类添加类属性。what? 上述的代码为Foo属性字典添加了x和y属性,但如果想添加'name' = 'harden'呢,这需要更灵活的定义了。so 我们再定义类Bar, name属性也可 ...
分类:
编程语言 时间:
2018-12-02 01:22:25
阅读次数:
210
模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。(来自百度百科) 模板方法模式在框架中经常使用,学习此模式后,对于阅读源码能力会有很大的提升。我准备先描述生活中的实际场景,引申出模板方式模式,然后分析此模式在J ...
分类:
其他好文 时间:
2018-12-02 01:19:49
阅读次数:
202
装饰器实际是一个函数 一、定义: 在不改变内部代码和调用方式的基础上增加新的功能 二、了解装饰器需要先了解3个内容 1、函数即变量 2、高阶函数 a、把一个函数名当做实参传给另一个函数 b、返回值包含函数名 3、嵌套函数 高阶函数 import time def test(): print('thi ...
分类:
编程语言 时间:
2018-12-01 13:01:21
阅读次数:
194