Are there any benefits to getters and setters?

January 20th, 2010

Well once upon a time, my answer would of definately been a resounding no....I, along with many other people from what I have read and heard never really saw the point to them. Why go through all the hassle of typing out all that extra code when you can just declare your variables as public so that they can be accessed outside the class?!
Well now I can fully see the usefulness of this little coding gem and how it fits nicely into proper OOP principles, I have done for a while and have been fully using them to boost the reusability of my frameworks, but only today really thought about how great they really are.

Public variables are great if you simply want your variables to be easy to access, but using a setter for something like this makes  things a lot easier in the long run. Lets have a look at a real world example. Lets say you have created a custom class that creates a sprite with a text field. Now to change the text in this class from outside you would access the public String variable that difines the text, then you would have to access the actual text field of the class, which of course would have to be public for you to access it which of course opens the textfield up to be able to be edited from out the class....not good as you really want to have things like this closed, unless of course it really suits you to have the textfield as public, but any way it goes against the OOP principle of encapsulation. Also everytime you want to change the text in the textfield from outside the class you eventually have to enter more code as each time you access the string varaibale and also the textfield's text.  So if we use a setter for this like so:

Actionscript:
  1. public function set text(txt:String):void
  2. {
  3.     myTextField.text = txt;
  4. }

Now one thing you will notice here is that through accessing this setter you automatically update the textfield so that the text changes, so that all you have to type when targeting the instance from outside the class is:

Actionscript:
  1. myCustomTextField.text = "blah blah blah";

One line to change the text, and also no need to access any string variables or even set them. Its is the same with getters also making assets and their properties and also private variables easy to access.

Actionscript:
  1. public function get text():String
  2. {
  3.     return myTextField.text;
  4. }

would simply be accessed with:

Actionscript:
  1. trace(myCustomTextField.text);

So you can see that getters and setters really are very useful and something that I seem to use pretty much in every class I seem to create these days, they not only keep your code cleaner and easier to read but make your classes seem to make more sense and function a lot better.

Happy coding

Categories: Actionscript 3.0 | Tags: , | 6 Comments

TweetParser updated to include usernames and hashtags

December 21st, 2009

Well the title says it all, the tweet parser I created and mentioned in an earlier post has been updated to include @usernames and also #hashtags. The parser will format these tags into html formatted links ready to be included in your htmlText for your AS3 text fields.

Updated source files here

Categories: Actionscript 3.0 | Tags: , , | No Comments

Nearing completion of AIR application – call for beta testers.

August 27th, 2009

OK so in my journey into working freelance as a flash developer / designer, one thing that has bothered me is the type of invoicing / billing software available out there, you either need intensive training to get to grips with some of the software, and quite honestly, I can't spare the time or it just isn't versatile enough and one of the great things with what we do and also with Adobe AIR is the fact that we can easily do something about it, so that is what I did.

So my aim was firstly to create something that I could use myself in order to invoice clients not just in my own currency but in other currencies, as my client base is pretty much world wide, as well as being able to produce invoices and accounts that were easy to manage. So I have over the last few months - in my spare time, been developing a software package that can handle invoicing / billing / reports and also timing of projects.

Since firstly creating a basic package for myself to use I decided to develop it further as I thought that if it has been useful to me then surely somebody else may want to use it, right? So my main purpose was firstly to make it as simple and easy to use as possible as well as being versatile. It has only been tested by myself and seems to be pretty robust, but in order for it to be really tested before I actually release it I need it to be tested by other people.

So I have decided to ask you my loyal reader base, if any of you would be interested in vigorously testing it for me before I generally release it on Adobe market place. My intention is to always release the software as free so monetary gain is not intended, and any beta testers will be thanked in the release version. So if you are interested please do get in touch with me either by leaving a comment or via here.

Categories: Actionscript 3.0, Adobe, Adobe AIR | Tags: , , | 8 Comments