Мониторинг переопределения приватных свойств. Terrasoft.PrivateMemberWatcher
Glossary Item Box
Общие сведения
Начиная с версии 7.12.0 в bpm'online добавлена функциональность переопределения приватных свойств — класс Terrasoft.PrivateMemberWatcher. При определении пользовательского класса эта функциональность проверяет были ли переопределены приватные свойства или методы, объявленные в родительских классах. При этом в режиме отладки выдается предупреждение в консоли браузера.
ВАЖНО
В bpm'online приватными свойствами или методами класса считаются те, названия которых начинаются с нижнего подчеркивания, например, _privateMemberName.
Например, в пользовательский пакет добавлена схема модуля, исходный код которой приведен ниже.
define("UsrPrivateMemberWatcher", [], function() { Ext.define("Terrasoft.A", {_a: 1}); Ext.define("Terrasoft.B", {extend: "Terrasoft.A"}); Ext.define("Terrasoft.MC", {_b: 1}); Ext.define("Terrasoft.C", {extend: "Terrasoft.B", mixins: {ma: "Terrasoft.MC"}}); Ext.define("Terrasoft.MD", {_c: 1}); // Переопределение свойства _a. Ext.define("Terrasoft.D", {extend: "Terrasoft.C", _a: 3, mixins: {mb: "Terrasoft.MD"}}); // Переопределение свойства _с. Ext.define("Terrasoft.E", {extend: "Terrasoft.D", _c: 3}); // Переопределение свойств _a и _b. Ext.define("Terrasoft.F", {extend: "Terrasoft.E", _b: 3, _a: 0}); });
Тогда после загрузки модуля, например, через строку браузера (см. "Клиентские модули") в консоли отобразится ряд предупреждений (рис. 1)
Рис. 1. — Предупреждения о переопределении приватных членов классов