浅谈cocos2dx(19) 二段构建模式
~~~~我的生活,我的点点滴滴!! 这篇文章将围绕两个疑问点展开 一、什么是二段构建模式? 大家都知道在C中我们一般在构造函数中为对象分配内存空间然后初始化成员变量,比如我们调用了new某个东西,那么在堆上会先为对象分配内存空间,然后调用构造函数
~~~~我的生活,我的点点滴滴!!
这篇文章将围绕两个疑问点展开
一、什么是二段构建模式?
大家都知道在C++中我们一般在构造函数中为对象分配内存空间然后初始化成员变量,比如我们调用了new某个东西,那么在堆上会先为对象分配内存空间,然后调用构造函数,在构造函数中完成一些初始化的工作。而二段构建模式就是将内存空间的分配和初始化分开来完成,然后调用一个静态方法来返回这个对象。
就拿cocos2dx中的Sprite类来说吧,当我们调用Sprite::create()的时候内部先使用new来分配内存空间,然后调用init方法来初始化一些变量的设置。所以cocos2dx中的二段构建模式就是将new分配内存空间和init初始化内容分开来处理,而不是c++传统的做法在构造函数中初始化变量。
Sprite* Sprite::create() { //分配内存 Sprite *sprite = new Sprite(); //init初始化 if (sprite && sprite->init()) { //内存管理的工作 sprite->autorelease(); return sprite; } CC_SAFE_DELETE(sprite); return nullptr; }
上边就是使用二段构建模式的过程,Sprite首先调用new来分配内存空间,然后调用init函数来完成初始化的工作,顺带还做了内存管理的工作,最后返回初始化好的对象。所以看了Sprite的create方法的实现,我们也知道了应该怎么使用这个二段构建模式了吧。
二、为什么要这么用?
c++程序员来说初始化工作不都是在构造函数中完成的吗,cocos中为何要这么做呢?
这里引述一下王哲的话:“其实我们设计二段构造时首先考虑其优势而非兼容cocos2d-iphone. 初始化时会遇到图片资源不存在等异常,而C++构造函数无返回值,只能用try-catch来处理异常,启用try-catch会使编译后二进制文件大不少,故需要init返回bool值。Symbian(qt), Bada SDK,objc的alloc + init也都是二阶段构造”。现在大家明白了吧,兼容Cocos2d-iPhone是一个原因,另一个重要的原因是构造函数没有返回值啊,如果加载资源图片的时候不存在怎么办,所以初始化的工作写在init函数中,这个函数返回的bool值用来判断是否初始化成功。使用这种方法还可以强化设计,想想自己写代码的时候是不是因为没有初始化某个成员变量导致了bug,这样做就是提醒你记得要在init中初始化成员变量。通过create静态函数返回的这个对象也实现了Cocos2dx中的内存管理,就不用我们自己麻烦了。还有一个原因是在C++的构造函数中是不能调用虚函数的,为了调用虚函数来完成一些功能就要写在init函数中。
以上就是二段构建模式的说明了,在我们写cocos程序的时候其实不知不觉就已经在使用这个构建模式了,想一下我们一个类继承了Layer,然后使用了宏CREATE_FUNC(),这不就是create静态方法吗,在init函数中完成了初始化,整个过程就是在用这种设计模式!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WeChat 방해금지 모드는 무엇을 의미합니까? 요즘 스마트폰의 인기와 모바일 인터넷의 급속한 발전으로 인해 소셜 미디어 플랫폼은 사람들의 일상 생활에 없어서는 안될 부분이 되었습니다. WeChat은 중국에서 가장 인기 있는 소셜 미디어 플랫폼 중 하나이며 거의 모든 사람이 WeChat 계정을 가지고 있습니다. 우리는 위챗을 통해 친구, 가족, 동료들과 실시간으로 소통하고, 삶의 모든 것을 공유하고, 서로의 현재 상황을 배울 수 있습니다. 그러나 이 시대에 우리는 또한 정보의 과잉과 개인정보 유출의 문제에 필연적으로 직면하게 됩니다. 특히 집중하거나 집중해야 하는 사람들에게는 더욱 그렇습니다.

iOS 기기에서는 오랫동안 건강 앱을 사용하여 수면 패턴 등을 추적할 수 있었습니다. 그런데 자고 있는 동안 알림으로 방해를 받으면 짜증이 나지 않나요? 이러한 알림은 관련성이 없으므로 그 과정에서 수면 패턴을 방해할 수 있습니다. 방해금지 모드는 잠자는 동안 주의가 산만해지는 것을 피할 수 있는 좋은 방법이지만, 밤에 받는 중요한 전화와 메시지를 놓칠 수 있습니다. 고맙게도 여기에서 절전 모드가 시작됩니다. 이에 대해 자세히 알아보고 iPhone에서 사용하는 방법을 알아보세요. iPhone에서 수면 모드는 어떤 역할을 합니까? 수면 모드는 "건강" 앱의 수면 일정에 따라 자동으로 활성화되는 iOS의 전용 집중 모드입니다. 알람을 설정하는 데 도움이 됩니다.

방해 금지 모드에서 전화를 받는 것조차 매우 짜증나는 경험이 될 수 있습니다. 이름에서 알 수 있듯이 방해 금지 모드는 모든 수신 전화 알림과 이메일, 메시지 등의 알림을 끕니다. 다음 솔루션 세트를 따라 문제를 해결할 수 있습니다. 수정 1 – 초점 모드 활성화 휴대폰에서 초점 모드를 활성화합니다. 1단계 – 위에서 아래로 스와이프하여 제어 센터에 액세스합니다. 2단계 – 다음으로 휴대폰에서 "초점 모드"를 활성화합니다. 집중 모드는 전화기에서 방해 금지 모드를 활성화합니다. 수신 전화 알림이 전화기에 표시되지는 않습니다. 수정 2 - 초점 모드 설정 변경 초점 모드 설정에 문제가 있는 경우 이를 수정해야 합니다. 1단계 – iPhone 설정 창을 엽니다. 2단계 – 다음으로 집중 모드 설정을 켭니다.

이 시리즈의 처음 두 튜토리얼에서는 로그인 및 새 사용자 등록을 위한 사용자 정의 페이지를 구축했습니다. 이제 탐색하고 교체해야 할 로그인 흐름의 한 부분만 남았습니다. 사용자가 비밀번호를 잊어버렸고 WordPress 비밀번호를 재설정하려는 경우 어떻게 되나요? 이 튜토리얼에서는 마지막 단계를 다루고 시리즈 전반에 걸쳐 구축한 개인화된 로그인 플러그인을 완성하겠습니다. WordPress의 비밀번호 재설정 기능은 오늘날 웹사이트의 표준 접근 방식을 어느 정도 따릅니다. 사용자는 사용자 이름이나 이메일 주소를 입력하고 WordPress에 비밀번호 재설정을 요청하여 재설정을 시작합니다. 임시 비밀번호 재설정 토큰을 생성하여 사용자 데이터에 저장합니다. 이 토큰이 포함된 링크가 사용자의 이메일 주소로 전송됩니다. 사용자가 링크를 클릭합니다. 중요한

iPhone 15 Pro 및 iPhone 15 Pro Max 모델에서 Apple은 볼륨 버튼 위의 기존 벨소리/무음 스위치를 대체하는 물리적으로 프로그래밍 가능한 작업 버튼을 도입했습니다. 동작 버튼은 여러 가지 다른 기능을 수행하도록 프로그래밍할 수 있지만 무음 모드와 벨소리 모드 사이를 전환하는 기능은 사라지지 않습니다. 기본적으로 작업 버튼을 길게 누르면 장치가 조용해지고 버튼의 촉각 피드백이 세 번 깜박입니다. 두 iPhone 15 Pro 모델 모두 상태 표시줄의 시간 옆에 줄이 그어진 벨 기호가 표시되어 무음/무음 모드가 활성화되었음을 나타내며, 동작 버튼을 다시 길게 눌러 기기의 음소거를 해제할 때까지 이 상태가 유지됩니다. iPhone을 무음 모드로 설정하고 싶은 경우

Notepad++ 다크 모드 v8.0에는 매개 변수가 없으며 Notepad++는 가장 유용한 텍스트 편집기입니다. Windows 10에서 실행되는 모든 앱은 다크 모드를 지원합니다. Chrome, Firefox, Microsoft Edge와 같은 웹 브라우저의 이름을 지정할 수 있습니다. Notepad++에서 작업하는 경우 기본 흰색 배경이 눈을 아프게 할 수 있습니다. 개발자는 Notepad++ 버전 8에 다크 모드를 추가했습니다. 이를 켜는 방법은 다음과 같습니다. Windows 11/10용 메모장 활성화 ++ 다크 모드 메모장 실행 ++ "설정" > "기본 설정" > "다크 모드"를 클릭하고 "다크 모드 활성화"를 선택하여 메모장을 다시 시작하세요.

Windows 노트북에는 최대 절전 모드 및 종료 옵션이 제공됩니다. 노트북을 절전 모드로 전환하면 저전력 모드로 전환되어 이전에 사용하던 방식으로 계속 작업할 수 있습니다. 노트북을 종료하면 모든 프로그램과 작업을 닫고 다시 시작해야 합니다. 하루 종일 노트북에서 휴식을 취하고 싶다면 절전 모드나 최대 절전 모드를 선택하는 것이 좋습니다. 문을 닫는 건 어때요? 매번 노트북을 종료해야 하나요? 알아 보자. 매번 노트북을 종료해야 하나요? 특히 장기간 사용하지 않는 경우 에너지를 절약하고 장치의 수명을 연장하려면 노트북을 끄는 것이 좋습니다. 하지만 낮에는 작업을 계속하려면 노트북을 절전 모드로 전환하는 것이 좋습니다.

대기 모드는 iPhone을 옆으로 돌리고(예: 가로 가로) 충전 케이블, MagSafe 충전기 또는 Qi 기반 무선 충전기에 연결된 경우에만 활성화되는 iOS 17의 새로운 사용자 정의 가능한 잠금 화면 모드입니다. 예를 들어 부엌, 책상, 침대 옆 탁자에서 기기를 충전하는 동안 멀리서도 볼 수 있는 다양한 탐색 가능한 정보 화면에 빠르게 액세스할 수 있는 일종의 iPhone용 스마트 디스플레이라고 생각하세요. 밤에 방이 어두우면 대기 모드가 어두워지고 디스플레이가 빨간색으로 변해 잠자는 동안 방해가 되지 않습니다. 동일한 기능을 수행한다는 점에서 Apple Watch의 나이트스탠드 모드와 유사합니다. 대기 모드가 켜지지 않습니다: iPhone이 연결된 경우 수행할 작업
