How about using the State pattern?

http://www.dofactory.com/Patterns/PatternState.aspx



-----Original Message-----
From: Unmoderated discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] On Behalf Of Bill Bassler
Sent: Friday, March 25, 2005 1:07 PM
To: [email protected]
Subject: [ADVANCED-DOTNET] Most appropriate design pattern to use for ...


I'm trying to determine the most appropriate design pattern to implement
for the following problem.

I'm receiving an xml document whose structure contains an element defining
a source. Each source's document contains a similar but distinct xml
document. Each one of the distinct documents requires a distinct set of
message processing steps. I have implemented the document specific
processing steps/algorithm using the Strategy pattern. This works well at
cleanly encapsulating the processing logic.

The issue I'm trying to solve is - What's the most appropriate/cleanest way
to inspect the source element in order to route the xml message to the
appropriate Strategy for processing. Currently I use a switch statement to
decide the processing.

e.g.

switch (enrollmentDoc.SelectSingleNod("/EnrollForm/Source").InnerXml.ToUpper
())
{
   case 1:
      // Use Strategy 1
   case 2:
      // Use Strategy 2
}

This works, but I'm looking for something a little less clunky and
hopefully more modular. I've looked at the Command pattern ... which seems
to somewhat fit the task. Possibly the Chain of Command but I don't know
that I need that level of processing flexiblity as what I need to do can be
encapsulated pretty well in the Strategy.

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com





------------------------------------------------------------------------------
Notice:  This e-mail message, together with any attachments, contains 
information of Merck & Co., Inc. (One Merck Drive, Whitehouse Station, New 
Jersey, USA 08889), and/or its affiliates (which may be known outside the 
United States as Merck Frosst, Merck Sharp & Dohme or MSD and in Japan, as 
Banyu) that may be confidential, proprietary copyrighted and/or legally 
privileged. It is intended solely for the use of the individual or entity named 
on this message.  If you are not the intended recipient, and have received this 
message in error, please notify us immediately by reply e-mail and then delete 
it from your system.
------------------------------------------------------------------------------

===================================
This list is hosted by DevelopMentor�  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to