Hi Tony!
Many thanks for your feedback.

Actually I try to see how OOP can be implemented using TW.
See http://oop.tiddlyspot.com/

So, I used the oop terminology! But you are right TW users should know
what equivalents are those terms in TW.

Thank you
Mohammad



On Thursday, January 23, 2020 at 10:43:58 AM UTC+3:30, TonyM wrote:
>
> Mohammad,
>
> [minor edit]
>
> Yes this is useful, some tricky things can be done with this, I would 
> suggest documenting this in your wiki text when you use it, or you could 
> come undone. Such that elsewhere in your wiki when you depend on the value 
> from Parent.
>
> We could call this "[re]\define"
>
> One idea is to name the macro in a way where you know it may be overridden 
> eg current-a would suggest there is a value set in parent but you may 
> override it in the current tiddler with \define current-a.
>
> When I write macros I try and place them in global macros and view 
> templates etc... rather than include them in the working tiddlers that 
> contain my information. In this case it can sometimes be hard to evaluate 
> which define is likely to win, but you can count on the current tiddler 
> having the known value if it contains the define.
>
> Here is a similar example, tagged macros 
> \define a() {{$:/config/global-a}}
>
> Then in a tiddler "a" returns the content of $:/config/global-a as the 
> value
>
> But these as you have done in your example the local tiddler can have
> \define a() not-global-a <!--override global"a"-->
>
> <<a>>
>
> Another way is just inside a macro with set/vars etc...
> \define test()
> <<a>> <!-- uses global a -->
> \end
> \define test-2()
> <$set name=a value="local value">
> <<a>> <!-- uses local a -->
> </$set>
> \end
>
> Regards
> Tony
>
> On Thursday, January 23, 2020 at 5:38:00 PM UTC+11, Mohammad wrote:
>>
>> From: https://en.wikipedia.org/wiki/Method_overriding
>>
>> Assume you have a tiddler called *Parent* with the below contents
>>
>> \define a() This is a
>> \define b() This is b
>> \define main()
>> <<a>>. <<b>>
>> \end
>>
>>
>> Now in *tiddler01 *do as below
>>
>> \import [[Parent]]
>> <<main>>
>>
>>
>> After saving it will display
>> This is a. This is b
>>
>>
>> and in *tiddler02 *do as below
>>
>> \import [[Parent]]
>> \define a() This is NEW a
>> <<main>>
>>
>>
>> After saving it will display
>>
>> This is NEW a. This is b
>>
>>
>> So, you can simply override the method a (in Tiddlywiki macro a).
>>
>> What do you think?
>>
>> --Mohammad
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/37c03337-488a-40f8-912b-be54602ff588%40googlegroups.com.

Reply via email to