[fpc-devel] Recent added support for Observer pattern in FCL
Luiz Americo Pereira Camara
luizmed at oi.com.br
Tue Aug 28 18:31:47 CEST 2012
Em 28/8/2012 12:46, michael.vancanneyt at wisa.be escreveu:
>
>
> On Tue, 28 Aug 2012, Luiz Americo Pereira Camara wrote:
>
>> Em 28/8/2012 09:15, michael.vancanneyt at wisa.be escreveu:
>>>
>>>
>>> On Tue, 28 Aug 2012, Luiz Americo Pereira Camara wrote:
>>>
>>>>
>>>> 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
>>>
>>> Exactly because it is not meant as a general messaging interface,
>>> and I want the interface to reflect this.
>>>
>>> There is a clear intended use case: Mainly notification of changes.
>>
>> This is the purpose i intend to use (replace my implementation).
>> Basically is a tree structure that needs to be observed. To avoid
>> performance problems like having to parse all the tree when a change
>> occurs i defined actions when a Child is added, deleted or inserted.
>
> Exactly. You should use ooAddItem, ooDeleteItem, and pass the treenode
> in Data.
>
>>
>> To be clear what i would need to do with the current approach:
>
> Your example is not correct. I don't see why you would not use
> ooItemAdded.
This was just the first thing that comes in mind.
I have a simple interface to observing a tree. Looking more carefully i
really can use ooItem* for children. I also defined a "Change"
notification for the object itself plus another for the child/item but
i could differentiate using data as nil. The other missing one is to
Load (lazy loading)
>
> We can agree on the exact number of operations that we define, but I will
> not implement a system with an open number of operations.
I will do some tests and inform if there's a generic enough case to be
included as a default notification
Thanks for the explanations
Luiz
More information about the fpc-devel
mailing list