As3 一些设计手法笔记(2)
来源:互联网 发布:怎么看淘宝抢购第几名 编辑:程序博客网 时间:2024/04/29 17:43
一、类结构体:
我不知道改这个名字对不对,网上是不是存在这种说法,在这里暂时不追究它的来源,它只是我脑海里面浮现出来的一个想法,它和c++ 结构体有相似的地方,因此我借用了c++特点来改了这个名称。要知道这种特性,我们先拿c++的一个结构体来观察一下。
有时候,我们会使用这种方式来对数据进行绑定。例如在一个游戏角色里面,它有基本的属性值,则可以设计为一种没有方法的类体,他与c++结构体作用有相似的地方。
C++结构体:
访问结构体的时候,直接调用里面的属性就成了。
work.age=12;
actionScript类结构体表示:
有了这种方式之后,当我们创建一个类的时候,就能够像c++结构体一样引用他里面的属性值。
var worker:Employee=new Employee();
worker.name=”张三”;
worker.age=23;
worker.sex=”男”;
这样通过类引用里面的属性就像c++结构体一样,在某一些书称这种设计值对象,通过封装了这个类,让对象拥有属性。有趣的时候,在设计这种类结构的时候,并没有引入除构造函数之外的方法。因此这种类特色就在这里。这种设计的方式,和MVC模式当中M模型会有一些联系,有兴趣可以参考MVC模式。
二、类枚举:
有时候,我们希望定义一系列的已经知道的常量值,就如定义消息协议一样,这样我们可以通过枚举的方式,将其罗列出来,一般来讲这个类可以不必考虑继承,在某个时候可以声明该枚举的类为final类,这样就不能被继承了。当然你可以有自己喜欢的方式处理这种枚举的方式。这种方式是多种多样,而这里提供一种比较常用的设计手法。
拿flash.display. GradientType 里面的GradientType来讲,在这个类当中,只是定义了两个静态的常量。
public static const RADIAL:String = "radial"
public static const LINEAR:String = "linear"
使用的时候,通过类引用里面的属性。GradientType. LINEAR.
如果你细心的会发现,这个类就是涉及到图形渐变的方面。呵呵,信不信?可以去查看帮助文档。
三、构造函数的参数
在创建对象的时候,我们首先执行是构造函数,这个时候,你是否会想过书写构造函数的时候,构造函数要不要带参数呢?如果带的话,带几个好呢?
我们在学习数学的时候,假设f(x)=x+1; 当x=1的时候,则f(1)=1+1=2. 同理
f(a,b)=a+b+3的时候,f(1,2)=1+2+3=6.
同理…..n个参数f(x…….)=x……
参考这种模式,我们可以发现,构造函数可以带无限制个参数,因为它本身就是一个函数。
也许你会问题,带多少个参数好?具体问题具体分析,比如flash.geom包下的Point类,它带两个参数,这两个参数记录了坐标系。
在这里设计,根据坐标系的特点而设计,这种设计方式很合理。
同理另外一个几何类Rectangle类则记录了四个参数。
Rectangle(x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0)
而你发现,有时候构造函数里面的参数说不定是5个,6个,16甚至n个等。参数个数,本身没有规定的,并不是越少越好,也不是越多越好,关键是适合。
这里设计当中,你会不知不觉应用了。比如我们要创建一个鱼类;
var myfish=new fish();//
这样我们就从中创建了一条鱼。要多少条鱼,采用循环的方式都可以实现到。
for(;;)
{
//复制对象
}
改造让其构造函数带一个参数。
通过输入值的时候,我们可以估计到这条鱼有多重;
var myfish=new fish(10);/
trace(myfish..weight());
有了这个鱼类后,伙计们当你们出外钓鱼的时候,会很方便计算出鱼的重量,而不需要精密电子秤量度。
呵呵,如果不合适,你投诉我,甚至可以E-mail 我,让我改一下,让你的鱼逃不过你的锐利的眼睛和精明计算。
谢谢
- As3 一些设计手法笔记(2)
- As3 一些设计手法笔记
- VCL中一些面向对象程序语言的设计手法
- as3游戏设计笔记:单例模式
- 设计模式 for as3 误人子弟总结笔记
- 一些惯用的编码手法
- pwn实战的一些手法
- AS3学习笔记(2)
- 解耦设计手法小结
- 解耦设计手法总结
- as3笔记
- as3 笔记
- as3笔记
- AS3.0基础学习笔记(2): 对象
- as3学习笔记2:Embed嵌入xml
- 用ATL手法来实现接口设计
- 室内田园设计手法要灵活多变
- AS3 的一些用法
- ads卸载问题
- 识别客户端分辨率方法
- 一份比较详细的DOS命令说明!
- Robocode---风靡全世界的Java学习软件(转载)
- 我的博客发布器
- As3 一些设计手法笔记(2)
- 忆龙2009:数字证书(CA)的分类
- 利用JFreeChart生成简单柱状图(Java)
- C++语言风格流变史
- CSS样式表的三种引用方式
- java多窗口关闭事件设置只关闭当前窗口而不关闭主线程
- hello
- 架构设计:多进程还是多线程
- Firmware加载原理分析