在具体谈及
Cairngorm
框架之前,我想先谈谈使用框架的必要性,也就是为什么要使用框架。(初学者可以看一下,高手略过)
凡是了解软件工程的人,都知道,软件工程其实不是纯粹的工程学,更是一门复杂的管理学课程。软件,完全由人来编写,写代码就像写文章一样,带有很浓厚的主观色彩,即使是制定各种编程规范,也无济于事。
但是这偏偏就是属于工程学,需要黑白分明,要达到预期目标,要按时完成,要方便以后代码重用,如何管理好,就一门学问,这就需要软件工程,需要设计模式,需要框架。
不同的语言推崇着不同的框架,但都是大同小异,本质上都是三层架构,
Flex
里面使用的比较广泛的是
Cairngorm
框架。
Cairngorm
框架主要包括以下
7
个部分:
数据组:
ValueObject,Model
控制组:
Command,controller
,
event
,
Delegate
界面组:
View
这么分类,其实就是按照三层架构的思想来分的,下面简单谈谈每个包的作用:
ValueObject
:顾名思义,就是值对象;它的作用主要有这样几个:
1.
包含整个程序中所需传递的数据,比如,界面输入的值,后台获取的值,等等;
2.
对界面对象的控制;
举例:我们常常会遇到这样的问题,在一个控件
A
中项要操作另一个控件
B
,比较麻烦,论坛上也常有这种问题。其实我们完全可以在
valueObject
里面声明一个
B
控件的引用,然后在
A
中就可以操纵
Model
中的
valueObject
对象里面的
B
控件的引用(因为是按引用传递的),就可以达到控制
B
的目的。
3.
对数组绑定对象的控制,如
list
,将其绑定在一个数组,通过改变数组就可以改变该
List
。
4.
防止
flag
变量;
5.
可以用在自定义事件中,传递参数;
Model
:
model
主要就是利用
ValueObject
来实现全局变量,(注意:在
Flex
中是没有全局变量一说的),所以使用
Model
和单例模式,来实现全局数据的控制。(什么是单例模式?就是一个类,在一个程序中,只存在一个对象。这个概念在
java
中也有用到)。
以上介绍的是数据组,接着是控制组。
Command
:
command
其实就是函数,继承自
Command
类。
Event
:
event
的功能就是给界面调用
command
提供方便。
Controller
:真正使
command
和
event
发生关系的,还是
controller
。它其实相当于添加事件监听,触发某某事件,该相应什么
command
,都在这里面定义。
Delegate
:
对于远程数据的访问,
Cairngorm
是以用委托类,来获取数据然后传给调用函数。
所以,可以看出,在控制方面,
Cairngorm
框架很有优势的。
接下来就是
View
了。
Flex
的一大好处,就是方便模块化编程,
View
包里面就是放的是自定义组件,在设计阶段,设计好的各个模块,都可以放置在这个包里面。以备以后代码重用