ActionScript - 构造函数中的Setter参数?

时间:2010-11-11 08:24:24

标签: actionscript-3 parameters constructor getter-setter

我设计了一个自定义类(或组件?),它扩展了Sprite,其构造函数有15个参数。只需要第一个参数,其余14个分配默认值。一切都是必要的。

除第一个必需参数外,每个参数实际上都是属性设置器。该类还包含公共setter和getter函数,允许在构造后在运行时更改属性。

我已经在我的桌面上写了这个课程(27英寸的屏幕)并意识到当我在13英寸笔记本电脑上使用课程时我可能会遇到问题 - 代码提示延伸到屏幕的边缘,因为它是太久了。

当setter函数可用时,在构造函数中包含可选setter作为参数是正常/最佳做法,还是setter总是与构造函数分开?

1 个答案:

答案 0 :(得分:2)

在我看来,它归结为在实例化部分代码的类中的易用性。 如果你有14个参数要么全部设置,要么全部跳过,那么它可能是最好的解决方案。

var defaultRectangle:Rectangle = new Rectangle(); //square of 1 x 1)    
var customRectangle:Rectangle = new Rectangle(0,0,  2,0  2,2,  0,2);

但是,如果14个参数中的一些是可选的,它会变得有点难以阅读,那么我认为使用单独的getter / setter更具可读性,或者是参数对象(模仿命名参数)

//which parameter means what?
var girlfriend:Girl = new Girl("Blue", 0, 0, "", "", 1.8, 0, "", 140); 

//named parameters 
var girlfriend:Girl = new Girl({eyeColor: "Blue", height:1.8, iq:140});

//setters
var girlfriend:Girl = new Girl();
girlfriend.eyeColor = "Blue";
girlfriend.height = 1.8;
girlfriend.iq = 140;

在使用“视图”时,我个人尝试尽可能多地使用模型 因此,如果您的对象是Sprite,那么就是View。也许最好的方法可能是:

var friend:Person = new Person({name: "Ford Prefect"});
var profileView:ProfileView = new ProfileView(friend);
addChild(profileView);