Hi Marijan,
thanks for sharing your views on this.
greetz
Hans


On 7/5/06, Marijan Miličević <[EMAIL PROTECTED]> wrote:

Hi Hans,
as I see it, I am not interested into dashed stuff of a shape,
only thing I am interested in is what can I do with it...
so, I could paint my shape with a brush or draw a line,
up to me to decide and shouldn't be exposed by my interface..
for example:


interface Shape
{
       void hide();
       void show();
       void draw();
       void delete();
}

public class Square implements Shape, Jumpable
{
       //implementation..
       public void draw()
       {
               final Pen pen = new Pen(LineType.DASHED);
               pen.drawLine(100,150);
               //....etc
       }
       //..more implementation...

       // Jumpable implementation
       public void jump()
       {
               // jumping code in here..
       }
}

public class MyCoolShape implements Shape
{
       //implementation..
       public void draw()
       {
               final Brush brush = new Brush(new Color(0x003300));
               brush.paint(10,10,30,-30);
               //....etc
       }
       //..more implementation...
}


public final class LineType
{
       public static final int DASHED = 0;
       public static final int MYTYPE = 1;
       private LineType(){}// do not instantiate
}


but again, as I said, nobody forbids you to use it the way you do,
and it's pointless to have huge discussion about it...
see it as personal preference...
kind regards,
-m


>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:flashcoders-
>[EMAIL PROTECTED] On Behalf Of Hans Wichman
>Sent: Wednesday, July 05, 2006 8:14 AM
>To: Flashcoders mailing list
>Subject: Re: [Flashcoders] AS3 - why no properties in interfaces?
>
>Hi Marijan,
>it might depend on what your constants are. For example imagine you had
an
>interface Shape, with a method setLineType. You could have setLineType
>(type:String) (eg "dashed"), or setLineType (type:Number) (eg 0, 2 ,5).
>With
>public constants you could have the Shape interface declare vars as
public
>static var DASHED:Number = 0; and you could call setLineType (
Shape.DASHED
>);.
>Out of the 3 alternatives i would prefer the last, and I do not think
this
>exposes inner details a lot.
>
>As said I can imagine that when you declare an interface like:
>interface MyGeneralInterface {
> public static var mySpecificVar:MyVerySpecificClass;
>}
>that it is plain wrong, but otherwise in the linetype example? I don't
>know,
>I'd like to hear your thoughts on it.
>
>greetz
>Hans
>
>
>On 7/3/06, Marijan Milicevic <[EMAIL PROTECTED]> wrote:
>>
>> Hi Hans,
>> while I cannot say it's bad, it's difficult t say there's nothin nad
>about
>> it.
>> to quote an javaworld article:
>>
>> "It turns out that using an interface to declare constants may not be
the
>> best practice after all. In fact, using interfaces in this way may be
>> downright nasty. Why? Interfaces should only be used to define types;
any
>> other use is an abuse. Using an interface causes internal details --
such
>as
>> constants -- to leak into the class' public API. Once something becomes
>part
>> of the public API, you can never get rid of it."
>> so, in above case it could be wrong..
>>
>> -m
>>
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED] on behalf of Hans
Wichman
>> Sent: Mon 7/3/2006 7:04 PM
>> To: Flashcoders mailing list
>> Subject: Re: [Flashcoders] AS3 - why no properties in interfaces?
>>
>> Although there is -nothing- bad about using interfaces as a container
of
>> constants.
>>
>>
>>
>> On 7/3/06, Marijan Milicevic <[EMAIL PROTECTED]> wrote:
>> >
>> > Hi Sascha,
>> >
>> > >But it's still beyond me why property support wasn't added. It
>> > >can be such a complex thing but would make OO life a good
>> > >amount easier.
>> >
>> > You are refering to Java but defined fields in java are implicitly
>> > static finals and need to be initilized within interface,
>> > so, you are not missing that much in AS3 anyway.
>> >
>> > Also, bad habit of java programmers is to use interfaces as container
>of
>> > constants,
>> > which, saves them some typing (although with static imports in
>1.5version
>> > it doesn't make any difference).
>> >
>> > -m
>> >
>> >
>> > _______________________________________________
>> > [email protected]
>> > To change your subscription options or search the archive:
>> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>> >
>> > Brought to you by Fig Leaf Software
>> > Premier Authorized Adobe Consulting and Training
>> > http://www.figleaf.com
>> > http://training.figleaf.com
>> >
>>
>>
>>
>> _______________________________________________
>> [email protected]
>> To change your subscription options or search the archive:
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>> Brought to you by Fig Leaf Software
>> Premier Authorized Adobe Consulting and Training
>> http://www.figleaf.com
>> http://training.figleaf.com
>>
>>
>_______________________________________________
>[email protected]
>To change your subscription options or search the archive:
>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
>Brought to you by Fig Leaf Software
>Premier Authorized Adobe Consulting and Training
>http://www.figleaf.com
>http://training.figleaf.com
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to