1、工厂方法 是程序设计中一个经典的设计模式,指的是基类中只定义创建对象的接口,将实际的实现推迟到子类中。在这里,我们将它稍加推广,泛指一切生成并返回一个对象的静态函数。一个经典的工厂方法如同这样:
CCObject* factoryMethod()
{
CCObject* ret = new CCObject();
//这里对ret对象进行必要的初始化操作
ret->autorelease();
return ret;
}
2、关于对象传值
将一个对象赋值给某一指针作为引用的时候,为了遵循内存管理的原则,我们需要获得新对象的引用权,释放旧对象的引
用权。此时,release()和retain()的顺序是尤为重要的。当other和object实际上指向同一个对象时,第一个release()可能会触发该对象的回收,这显然不是我们想看到的局面,所以应该先执行retain()来保证other对象有效,然后再释放旧对象:
void SomeClass::setObject(CCObject* other)
{
other->retain();
this->object->release();
this->object = other;
}
3、