[fpc-devel] Recent added support for Observer pattern in FCL
Luiz Americo Pereira Camara
luizmed at oi.com.br
Tue Aug 28 13:30:51 CEST 2012
Em 28/8/2012 04:50, michael.vancanneyt at wisa.be escreveu:
> On Mon, 27 Aug 2012, Luiz Americo Pereira Camara wrote:
>> I ask to change to a mechanism that could allow customizable
>> operations (more than one)
> That is why you have ooCustom.
>> I'm asking that because i have implemented a similar mechanism that
>> support operations like Load, ChildAdd, ChildDelete, ChildChange. I
>> believe that more developers are in the same situation,i.e., using
>> observer pattern to an action not handled by those 5 types. It would
>> be helpful to use the native implementation otherwise i will have to
>> keep(re-implement) the observer support over TPersistent.
> That's why you have ooCustom and Data at your disposal.
ooCustom is already used in TCollection if i remember correct.
If i use it for a TCollection descendant that uses ooCustom with a
record pointer i would get a conflict and a possible crash.
Why not let TFPObservedOperation as integer and define constants.
It could define a constant like ooUser = 32
Below ooUser is reserved for future default constants
Above ooUser could be added custom messages
This is how LCL messages works
Its both light and extensible
>> The names of the TFPObservedOperation are not consistent:
>> ooChanged is in preterit while others not
>> ooChanged does not has Item suffix
> It does not need one. The sender has changed, not an item in a list.
> The 'Item'-s are for when sender is a list, and an item is added to
> the list.
> (TList, TStringList, TCollection)
I did the remark because in TCollection is fired because a a change in a
Item. But is fine.
Any way the preterit question is still valid Changed - Added - Deleted
or Change - Add - Delete
More information about the fpc-devel