在monkeyC的工厂设计模式

时间:2018-06-02 15:47:18

标签: monkeyc

我正在尝试在我的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());

0 个答案:

没有答案