我正在尝试在我的watchface实现中使用工厂设计模式,但我是MonkeyC语言的新手,是否可以做这样的事情?
class FieldFactory{
function initialize(){
}
function getField(type){
if ( type == "time" ){
return new Time();
}
}
}
class Field{
function initialize(){
}
function update(){
}
function getText(){ return text_;}
function setText(text) {text_ = text;}
private var maxDataLen_;
private var text_;
}
class Time extends Field{
function initialize(){
Field.initialize();
update();
}
function update(){
// do magic with time formatting ... and then set it ...
Field.setText( Lang.format(timeFormat, [hours, clockTime.min.format("%02d")]));
}
}
我想以这种方式使用它:
var fieldFactory = new FieldFactory();
var time = fieldFactory.getField("time");
Sys.println(time.getText());
但不幸的是我得到意外类型错误,任何暗示我做错了什么,或者是否有可能在MonkeyC中做这些事情?
当我使用没有工厂对象的id时,它工作正常:
var time = new Time();
Sys.println(time.getText());