浅谈cocos2dx(16) 中外观模式

~~~~我的生活,我的点点滴滴!!          

          仍然先来说明一下何为外观模式,一个复杂的系统包含很多子系统,为了使用这个复杂的系统,我们定义一个统一的接口来使用这个复杂的系统。当用户操作的时候只要调用我们提供的这个接口就好了,至于底层的这个复杂的系统,用户不必关系是如何工作的。这里列举一个网上的例子,编译系统是一个复杂的系统,包括什么词法分析,语法分析,语义分析等等,用户在编译程序的时候不需要了解这个复杂的系统到底是怎么编译的,只要使用统一的接口编译就可以了,代码如下:

class Scanner
{
	public:
		doScanner()
		{
			//do something 
		}
};

class Parser
{
	public:
		doParser()
		{
			//do something
		}
}

class Compile
{
	public:
		doCompile()
		{
			Scanner m_scan;
			m_scan.doScanner();
			Parser m_parse;
			m_parse.doParser();
		}
}

int main()
{
	Compile cp;
	cp.doCompile();
	return 0;
}

这种是隐藏了内部实现,用简单明了的接口表达了用户意愿,coocos2dx里面有好多这样的用法 ,最普遍的例如那些静态的create函数,只要用户一看就知道那是用来干什么,然后用户也不需要知道里面做了什么操作,如果让用户自己去写,那就得先构造出一个对象,然后把其加入自动内存管理系统中,然后在做一些别的操作,不仅慢,还容易忘记写上某些功能,特别是加入自动内存管理系统中。

对于使用这种模式的类典型是SimpleAudioEngine,我们播放声音就是调用这个类的接口来完成的,而底层它是使用了CDSoundEngine、CDAudioManage这俩个类的相关管理声音的函数。我们知道SimpleAudioEngine是没有函数提供给我们循环播放音效的,但是我们可以使用底层的CDAudioManage来实现这个功能,这就是所谓的灵活性吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值