2

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

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

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

当 setter 函数可用时,在构造函数中包含可选的 setter 作为参数是正常/最佳实践,还是应该始终将 setter 与构造函数分开?

4

1 回答 1

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更具可读性,要么使用paramater对象(模仿命名参数)

//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 并且因此是视图。也许最好的方法可能是:

var friend:Person = new Person({name: "Ford Prefect"});
var profileView:ProfileView = new ProfileView(friend);
addChild(profileView);
于 2010-11-11T09:46:18.413 回答