Используйте переходные свойства, чтобы избежать сохранения того, что можно создать при загрузке объекта. Например, объект может содержать детали компонента, которые можно регенерировать из сохраняемых данных. Регенерация этих компонентов также позволяет новым версиям класса создавать компоненты другим способом.
The YearlyRainfall
иллюстрирует, как регенерировать график при загрузке объектов этого класса. YearlyRainfall
объекты содержат столбчатую диаграмму месячной нормы осадков для заданного места и года. The Location
и Year
свойства являются обычными свойствами, значения которых сохраняются при сохранении объекта.
The Chart
свойство содержит указатель на столбчатую диаграмму. При сохранении столбчатой диаграммы MATLAB® также сохраняет рисунок, оси и объект Bar и данные, необходимые для создания этих графических объектов. The YearlyRainfall
проект класса устраняет необходимость сохранения объектов, которые он может регенерировать:
The Chart
свойство Transient
поэтому графические объекты не сохраняются.
ChartData
является частная собственность, которая обеспечивает хранение данных объекта Bar (YData
).
The load
функция вызывает set.ChartData
метод, передав ему сохраненные данные столбчатой диаграммы.
The setup
метод регенерирует столбчатую диаграмму и присваивает указатель Chart
свойство. Конструктор классов и set.ChartData
вызов метода setup
.
classdef YearlyRainfall < handle properties Location Year end properties(Transient) Chart end properties(Access = private) ChartData end methods function rf = YearlyRainfall(data) setup(rf,data); end function set.ChartData(obj,V) setup(obj,V); end function V = get.ChartData(obj) V = obj.Chart.YData; end end methods(Access = private) function setup(rf,data) rf.Chart = bar(data); end end end
Преимущество YearlyRainfall
проект класса - это гибкость для изменения типа графика, используемого, не делая ранее сохраненные объекты несовместимыми. Загрузка объекта воссоздает график только на основе данных, которые сохраняются в MAT-файле.
Для примера измените тип графика с столбчатой диаграммы на ступенчатый график путем изменения setup
метод:
methods(Access = private) function setup(rf,data) rf.Chart = stairs(data); end end