Клонировать или не клонировать - PullRequest
0 голосов
/ 20 декабря 2009

Я написал класс Scale9Bitmap в AS3, и он требует, чтобы dev установил BitmapData и Rectangle для scale9Grid. Мне интересно, что является обычным для общественности, чтобы получить функции обоих. Должен ли я вернуть клон каждого из них, чтобы освободить его от свисающих ссылок, но не как для памяти? или я оставляю это на усмотрение разработчика и возвращаю исходные экземпляры?

Ответы [ 3 ]

1 голос
/ 20 декабря 2009

Оставьте это на усмотрение разработчика. Разработчик может клонировать его при необходимости. Однако это очень подвержено ошибкам. Обычно вы стреляете в неизменное состояние и возвращаете клона. Но это плохая идея с AS3, как вы уже упоминали.

0 голосов
/ 20 декабря 2009

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

Форсировать клон с каждым получением было бы крайне неудобно, например, подумать о простой проверке размера или о чем-то подобном.

0 голосов
/ 20 декабря 2009

Я не знаком с ActionScript, но на других языках я бы предпочел иметь выбор. Так что оставь это разработчику.

...