Hey,

I'm not against using public variables, but I dont like using get set as you
did below *if *setting the data has sideeffects outside the area of
validation.
If you are setting a property and you want to test or verify it or whatever,
I can imagine using set get.
If you are setting a property and it causes state changes or whatever I like
to use an explicit method. Yeah you can mouse over it, codeinspect it or
whatever and see it's an implicit get/setter, but just looking at an
interface I find it easer to have either public methods or properties and
not something in between that lends itself to misuse (ie this set data WAS
only validating, but damn now it needs to change state as well, ah heck,
lets cram in there instead of ....)

So for me it's usually either a public var or a method.

And there's more behind it than good coders being forced to work with bad
coders at least as far as the public variables are concerned, it has to do
with the whole mumbo jumbo of the OO asking versus simply taking. An object
giving access to its internals instead of an object grabbing access,
although in a lot of cases it doesn't pay to make such an academic
distinction.

I liked the clear explanation Steven gave, although comparing it to
masturbating sounds a bit like promoting it ;0)

JC




And a *big* +1 for this:

>
>
> That being said, I don't abide by the retarded rule that you shouldn't have
>> public vars in a class.
>>
>
> regards,
> Muzak
>
> ----- Original Message ----- From: "Steven Sacks" <
> [EMAIL PROTECTED]>
> To: "Flash Coders List" <[email protected]>
> Sent: Wednesday, December 10, 2008 5:01 AM
> Subject: Re: [Flashcoders] use get / set functions or make your own
>
>
>  For clarity, they're referred to as implicit and explicit.
>>
>> get prop / set prop = implicit
>> getProp() / setProp = explicit
>>
>> In AS2, it made a difference because implicits were available right away,
>> whereas explicits were not available for 1 frame.  This limitation is not
>> present in AS3.
>>
>> Basically, implicit implies properties of a class, whereas explicit
>> implies methods of a class.
>>
>> I opt for implicit over explicit because this:
>>
>> foo.prop = value;
>>
>> makes more sense than
>>
>> foo.setProp(value);
>>
>> I leave methods for methods, not properties.
>>
>> That being said, I don't abide by the retarded rule that you shouldn't
>> have public vars in a class.  People who do this
>>
>> private var _foo:Boolean;
>> public function get foo():Boolean { return _foo; }
>> public function set foo(value:Boolean):void { _foo = value; }
>>
>> are masturbating and I'm not impressed by their bloated ego...I mean code.
>> ;)
>>
>> Unless something needs to happen immediately within the class when you set
>> or get a prop (i.e. a state change), it's fine for it to be a public var.
>>  It's faster, it's less bloat and most of us aren't writing large
>> applications with a bunch of other developers.  Some of these rules were
>> created for when good coders are forced to work with bad coders and the good
>> ones need to protect their code from the bad ones.  When it's just you and a
>> couple other devs, and you're all competent, you don't need all these checks
>> and balances that are nothing more than compensation for people who you wish
>> you didn't have to code with.  /rant   ;)
>>
>>
>>
>  _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to