2013-05-22 5 views
0

У меня есть класс объекта, который имеет свойство counter. Могу ли я установить его как закрытый или защищенный, то есть this._counter или this.__counter?qooxdoo: охраняемая/приватная недвижимость?

qx.Class.define("myApp.model.MyClass", 
{ 
    extend : qx.core.Object, 
    construct : function() { 
    }, 
    properties : { 
    counter : { init : '', check : 'Integer' } 
    } 
}); 

Свойства хорошо, так как она позволяет автоматически генерировать getCounter() и setCounter(val).

Но есть ли недостаток, чтобы установить его как общедоступные свойства?

ответ

2

Извините, но установка частной или защищенной недвижимости невозможна. Вы должны использовать переменную-член вместо этого и либо получить доступ к ней напрямую, либо написать свой собственный сеттер/получатель.

+0

Но есть ли недостаток (например, проблема безопасности), чтобы установить его как общедоступные свойства? – Raptor

+2

Нет. Когда вы используете свойства, вы ** do ** хотите эту экспозицию. Свойства - это функция моделирования. Если вам нужны скрытые данные в классе, не используйте свойства. – ThomasH