Шаблон фабричного дизайна в 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?

когда я использую идентификатор без фабричного объекта, он работает нормально:

var time = new Time();
Sys.println(time.getText());

0 ответов

Другие вопросы по тегам