AOP 各种的实现
AOP就是面向切面编程,我们可以从几个层来实现AOP
编译期---------字节码加载前---------字节码加载后
在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。
类别
机制
原理
优点
缺点
静态AOP
...
分类:
编程语言 时间:
2014-06-20 10:56:25
阅读次数:
170
动态 变量类型在运行期间确定下来静态 在编译期确定下来强类型 类型不会发生自动变换,弱类型
类型会自动变,比如double+int -> double类型安全 类型对数据访问有严格控制类型不安全 ...Well-typed programs
cannot "go wrong" ...
分类:
编程语言 时间:
2014-06-06 15:36:16
阅读次数:
238
桥梁模式的用意是:将抽象化和实现化惊醒脱耦,使得两者可以独立的变化。所谓脱耦就是将抽象化和实现化之间的耦合解脱开,也就是强关联变成若关联。强关联就是在编译期就已经确立的,无法在运行时改变;弱关联就是可以动态的确定并且运行期可以改变的关联。继承是强关联,合成、聚合是弱关联。类图:示意性代码:packa...
分类:
其他好文 时间:
2014-06-02 08:57:44
阅读次数:
212
?建立一个工程后,会在Supporting
files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除?在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”?项目中其他Plist文件不能带有“Info”这个字眼,不然...
分类:
其他好文 时间:
2014-06-02 06:41:17
阅读次数:
221
常量是一种标识符,它的值在运行期间恒定不变。C语言用 #define来定义常量(称为宏常量)。C++ 语言除了 #define外还可以用const来定义常量(称为const常量)。
一、为什么需要常量
如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?
(1).程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处...
分类:
编程语言 时间:
2014-06-01 14:54:48
阅读次数:
394
1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、
如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射 Reflection,中文翻译为反射。
这是.Net中获取运行时类型信息的方式,.Ne...
分类:
其他好文 时间:
2014-05-29 01:38:30
阅读次数:
274
一、内存基本构成
可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。
静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创...
分类:
其他好文 时间:
2014-05-26 07:53:33
阅读次数:
308
经验1:
析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们(不传播)或结束程序。
经验2:
如果客户需要对某个操作函数运行期间抛出的异常做出反应,那么class应该提供一个普通函数(而非在析构函数中)执行该操作。...
分类:
编程语言 时间:
2014-05-25 16:20:26
阅读次数:
304
协程协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态。协程可以在运行期间的某个点上暂停执行,并在恢复运行时从暂停的点上继续执行。协程已经被证明是一种非常有用的程序组件,不仅被python、lua、ruby等脚本语言广泛采用,而且被新一代...
分类:
其他好文 时间:
2014-05-24 01:38:01
阅读次数:
329
什么是AOP? (以下内容来自百度百科) 面向切面编程(也叫面向方面编程):Aspect
Oriented
Programming(AOP),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。是软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部...
分类:
编程语言 时间:
2014-05-19 17:37:38
阅读次数:
523