Am 29.07.2009 um 15:54 schrieb Damien Cassou:

> 2009/7/29 Mariano Martinez Peck <marianop...@gmail.com>:
>>
>> On Tue, Jul 28, 2009 at 5:39 PM, Igor Stasenko <siguc...@gmail.com>  
>> wrote:
>>>
>>> I think that all such kind of queries (like isXXXPlatform) should be
>>> not included and not used in a well-designed system.
>>> If you want some capability - then you should ask directly for it,
>>> irrespectively on what platform you are currently running.
>>
>> I am agree. I really believe in the phrase "tell don't ask".  
>> However, I have
>> a couple of things to say:
>>
>> 1) It is not as easy as it seems. If you want to delegate to  
>> another object
>> and be polymorphic regarding the platform you must reify a couple  
>> of classes
>> (in your slash it is easy because you have the File hierarchy). I  
>> mean, you
>> cannot put everything in the Platform class. And this must be done  
>> in every
>> place. You must really understand that piece of code to change it.  
>> I can do
>> this in my projects, but I don't know about to do it everywhere.
>
> The class OSPlatform is quite small. I would vote for:
>
> - implementing the following methods
>
> OSPlatform>>isMacOSX
>  ^ false
> OSPlatform>>isWin32
>  ^ false
> OSPlatform>>isUnix
>  ^ false
>
> and then
>
> MacOSXPlatform>>isMacOSX
>  ^ true
> UnixPlatform>>isUnix
>  ^ true
> Win32Platform>>isWin32
>  ^ true
>
> - when you want to test the platform, just do:
>
> OSPlatform current isMacOSX
>
> or
>
> OSPlatform current isWin32
>
> What do you think?

When I learned object orientation one of the first things I  
encountered was:
"Procedural code makes decisions, object oriented code delegates."
Or, sometimes simply: "Tell, don't ask!".
For me this looks like asking...

Regards
Andreas


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to