我手边有这个问题,想要一些最好的方法来接近它 -
在我的应用程序中,我有不同的对象集,每个对象都有一些与之关联的属性。
例如:对象,比如说,形状,具有一些常见属性,如颜色和特定属性(例如:圆有半径,中心有其特定属性)
用户可以通过属性检查器更改对象属性。 目前,PI拥有一个对象ID,并使用该ID与DOM进行通信,以获取与其当前引用的对象相关的任何内容。比方说,如果它想要改变对象的属性,它将调用DOM Api
ChangeObjectProperty(objectID , *);
(我希望使用对象ID来引用DOM中的对象是正确的方法。(有更好的方法吗?))
作为第二个参数,我应该传递什么?
它应该是一个不透明的对象(比如IObjProps
),每个对象都提供自己的结构吗?
例如,圆圈将具有以下自己的结构 -
class CircleProps extends CommonProps
{
public var radius:Number;
public var center:Point;
}
class CommonProps extends IObjProps
{
public function clone();
public var color:Number;
}
DOM将此结构传递给对象,对象负责应用更改。
所以ChangeObjectProperty(objectID , *);
函数将实现为 -
function ChangeObjectProperty(objectID , props:IObjProps)
{
var object:Object = GetObjectFromID(objectID);
object.SetProperty(iObjProps)
}
上述方法的问题在于 - 从单一结构中很难知道具体属性发生了哪些变化 -
另一种方法是使用属性字典 - 客户端只插入已更改为字典的属性。
我想知道这些用例的设计模式是什么。
添加更多信息 - 这是动作脚本 -