Reviving this thread... IMO, breaking backward-compatibility is not helpful to Flex. I guess I don't fully understand the issue, so I don't have an alternate proposal, but I think having a separate set of Sort/SortFields that are immutable should be considered.
-Alex On 5/22/15, 9:49 AM, "Alex Harui" <aha...@adobe.com> wrote: > > >On 5/22/15, 9:30 AM, "Mihai Chira" <mihai.ch...@gmail.com> wrote: > >>On 22 May 2015 at 17:38, Alex Harui <aha...@adobe.com> wrote: >>> If you’ve been following the FlexJS stuff, you know that I am a >>> “pay-as-you-go” advocate. I tend to lean against fancy code that, >>>while >>> it makes development faster, is still running at run-time. >>I agree, which is why, after recalling some things I learned about >>value objects from DDD[1] and other [2] places [3], I'm leaning toward >>at least a partial implementation of #1, because Sort and SortField >>have all the characteristics of value objects. This would change the >>API somewhat, but only as much as requiring developers to create new >>SortField or Sort objects if they want to apply different sorting >>criteria. >> >>> You can say >>> that a simple flag and the code to test whether to call refresh() >>>doesn’t >>> take many CPU cycles and you would be right, but the Flex SDK is >>>evidence >>> that when you add little bit of code like this thousands of times it >>>adds >>> up to something. >>> >>> So, my philosophy would be to think of ways to make sure folks don’t >>> forget to call refresh(). >>...or reuse Sort / SortField objects between collections, which can >>lead to the same problem. (Though if option #1 is implemented, reusing >>them becomes safe, because their state cannot be changed.) > >I’m a little concerned that someone somewhere is relying on sharing a >mutable SortField, so I’d be careful about making a change like that. At >least, add an mx_internal flag to get back old behavior so if someone does >complain they have a way of recovering. > >It might still be safer to implement a new set of Sort classes that are >immutable. > >Anyway, be careful, and good luck. > >-Alex >