Special

Clearance Sale!

We've been publishing for over five years now and it's time to clear out our inventory of back issues, so we're slashing prices!

RBD Magazines

Check out this amazing clearance sale of all our past issues. Missing some issues? This is a great time to complete your RBD collection. Save up to 40% off the regular price of our printed back issue packages. These prices are only good until the end of the year May 2008 and supplies are limited, so place your order today.

Article Preview


Buy Now

Print:
PDF:

Object-Oriented Thinking

Use Polymorphism to Simplify Code

Issue: 2.2 (October/November 2003)
Author: Charles Yeomans
Author Bio: Charles Yeomans is a software developer in Lexington, Kentucky
Article Description: No description available.
Article Length (in bytes): 4,807
Starting Page Number: 36
RBD Number: 2216
Resource File(s): None
Related Web Link(s):

http://www.refactoring.com/

Known Limitations: None

Excerpt of article text...

You're writing a widget server, and you'll want to implement logging. You'll want to offer several logging levels; let's say, Error, Warning, and Debug. You'll want to offer various output possibilities -- Console, log file, or no output for each logging level. Let's take a hypothetical look at how you might do that.

We'll start with a module Logger; I suggest a module because I expect that we'll want one instance only, and we'll want it always available.

Sub LogErrorMessage(message as String)

dim msgDate as Date

dim logMsg as String

msgDate = new Date

logMsg = msgDate.ShortDate + " " + msgDate.ShortTime + " " + "Error: " + message

If LogErrorsToConsole then

TellConsole logMsg

ElseIf LogErrorsToFile then

AppendToFile logMsg

Else

//don't log these messages

End if

End Sub

TellConsole and AppendToFile are protected subroutines that do what their names suggest. LogErrorsToConsole and LogErrorsToFile are Boolean constants set in a preferences window somewhere.

...End of Excerpt. Please purchase the magazine to read the full article.

Article copyrighted by REALbasic Developer magazine. All rights reserved.


 


|

 


Weblog Commenting and Trackback by HaloScan.com