Hi,
This reply was very helpful. I'll sleep on it, but had planned
something along the lines of your example.
Respectfully,
Christopher Kennon
Principal & Creative Director -Bushidodeep
www.bushidodeep.com
___________________________
"An ideal is merely the projection, on an enormously enlarged scale,
of some aspect of personality."
---------- Aldus Huxley
On Jan 17, 2006, at 7:04 PM, Alan MacDougall wrote:
Chris Kennon wrote:
Hi,
If my understanding of encapsulation is misguided, please correct.
In the following code snippet, should in the interest if
encapsulation, the "Good Morning/Afternoon" strings be called
from another function?
That depends on exactly how you interpret "formatTime". The point
of encapsulation is not that your code embodies an ideal, but that
it separates unrelated functions in a way that is useful to you.
In the case of a time formatting function, I would argue that you
might wish to put a string representation of the current time into
many contexts. Maybe a character in a game says "It is now 12:34PM.
Good morning!" Or maybe a desktop clock displays only mm:ss. Maybe
a logging application displays a timestamp before every log
message. It isn't likely you'll want to say "The current time is:"
or "Good morning!" in all of these cases.
It would probably be more useful to have a function, formatTime,
which returns only a string representing the time itself; and then
construct strings like this: "It's " + formatTime(myDate) + "! Time
to make the donuts!"
Or if you want the best of both worlds, do this:
function formatTime(date:Date):String
{
// return the time string
}
getTimeGreeting(date:Date):String
{
var timeString:String = formatTime(date);
var greeting:String = "The time is now " + timeString + ".";
if (date.getHours() < 12)
{
greeting += " Good morning!";
}
else
{
greeting += " Good afternoon... or night.";
}
return greeting;
}
This way, you have two functions, each of which does only what it
should, no more or less. Just remember that "should" is always
based strictly on the needs of your application... with a little
room for future expansion or revision. A lot of the main point of
encapsulation -- and object orientation itself -- is that it makes
it easier to alter or re-use code later.
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders