一、什么是 AOP。
AOP(Aspect Orient Programming),也就是面向切面编程。可以这样理解,面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程序运行过程。
二、AOP 的作用。
常常通过 AOP 来处理一些具有横切性质的系统性服务,如事物管理、安全检查、缓存、对象池管理等,AOP 已经成为一种非常常用的解...
分类:
编程语言 时间:
2014-08-20 12:37:52
阅读次数:
309
1、对象池技术并没有限制说只能创建一个对象,而且这种技术同样适用于创建固定数量的对象,然而,这种情况下,你就得面对如何共享对象池里的对象这种问题。当创建多个对象会的代价会很大的时候,可以考虑使用对象池技术,目前已有的技术比如:线程池技术、数据库连接池技术2、UML图(astah/jude)下载地址:...
分类:
其他好文 时间:
2014-08-12 18:18:04
阅读次数:
182
今天的微博有人讨论到对象池,我想到之前项目的实现,应该用模板来实现啊,唉,还是被前人的想法给框定了,只是实现一个特别简单,花了几分钟写了个:const int DefaultPoolSize = 1024;template class CSSObejctPool{private: queue m_O...
分类:
编程语言 时间:
2014-08-08 11:58:15
阅读次数:
180
Cocos2d-x用了一种引用计数的方式来管理内存对象,通过类Ref、AutoreleasePool和PoolManager来完成。
Ref为引用计数类,其构造函数是protected的访问类型,当Ref的对象被创建的时候它的引用计数为1
在对象创建的时候会调用create,然后调用autorelease,将对象放入对象池(AutoreleasePool的一个对象中)方便后面的统一管理,
...
分类:
其他好文 时间:
2014-07-31 17:08:46
阅读次数:
241
最近在改Away3D源码的时候遇到个很郁闷的问题,发现创建的Mesh 释放不掉。分析源码发现 EntityListItemPool 类中逻辑Bug在getItem()函数中发现_poolSize 对象池大小如果够用的情况下 它采用的方式是复用EntityListItem那么假设我删除了场景上有10个...
分类:
其他好文 时间:
2014-07-29 12:05:27
阅读次数:
225
(十一)合成模式 Composite
合成模式是一组对象的组合,这些对象可以是容器对象,也可以是单对象。组对象允许包含单对象,也可以包含其他组对象,要为组合对象和单对象定义共同的行为。合成模式的意义是 保证客户端调用单对象与组合对象的一致性。
(十二) 享元模式 Flyweight
享元模式的主要目的是实现对象的共享,当系统中存在大量对象的时候减少内存开销,通常与工厂模式一同使用。一个客户端请求时候,工厂检查当前对象池是否存在可用的对象,有就返回已经存在的对象。没有就创建一个新对象。数据库连接池就是最典型的...
分类:
编程语言 时间:
2014-07-12 22:01:19
阅读次数:
466
工厂对象通常包含一个或多个方法,用来创建这个工厂所能创建的各种类型的对象。这些方法可能接收参数,用来指定对象创建的方式,最后返回创建的对象。有时,特定类型对象的控制过程比简单地创建一个对象更复杂。在这种情况下,工厂对象就派上用场了。工厂对象可能会动态地创建产品对象的类,或者从对象池中返回一个对象,或...
分类:
其他好文 时间:
2014-07-09 19:48:34
阅读次数:
216
今天的微博有人讨论到对象池,我想到之前项目的实现,应该用模板来实现啊,唉,还是被前人的想法给框定了,不过实现一个特别简单,花了几分钟写了个:
#include
#include
using namespace std;
const int DefaultPoolSize = 1024;
template
class ObejctPool{
private:
queue m_OriBl...
分类:
编程语言 时间:
2014-06-30 00:25:01
阅读次数:
259
池管理类有啥用?在游戏场景中,我们有时候会需要复用一些游戏物体,比如常见的子弹、子弹碰撞类,某些情况下,怪物也可以使用池管理,UI部分比如:血条、文字等等这些元素共同的特性是:存在固定生命周期,使用比较频繁,场景中大量使用。所以,我们就通过池管理思路,在游戏初始化的时候,生成一个初始的池,存放我们要...
分类:
其他好文 时间:
2014-06-26 00:57:33
阅读次数:
259
在《Effective Java 2nd
Edition》中,第6条“消除过期的对象引用”提到,虽然Java有
垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池、缓存中的过期对象都有可能引发内存泄露的问题。书中还提到可以用
WeakHashMap来作为缓存的容器可以有效...
分类:
移动开发 时间:
2014-06-16 09:17:26
阅读次数:
292