What OOP pattern to use when only adding new methods, not data?

Posted by Jonathon Reinhart on Stack Overflow See other posts from Stack Overflow or by Jonathon Reinhart
Published on 2010-06-03T01:14:37Z Indexed on 2010/06/03 1:24 UTC
Read the original article Hit count: 263

Filed under:
|
|

Hello eveyone... In my app, I have deal with several different "parameters", which derive from IParameter interface, and also ParamBase abstract base class. I currently have two different parameter types, call them FooParameter and BarParameter, which both derive from ParamBase. Obviously, I can treat them both as IParameters when I need to deal with them generically, or detect their specific type when I need to handle their specific functionality.

My question lies in specific FooParameters. I currently have a few specific ones with their own classes which derive from FooParameter, we'll call them FP12, FP13, FP14, etc. These all have certain characteristics, which make me treat them differently in the UI. (Most have names associated with the individual bits, or ranges of bits). Note that these specific, derived FP's have no additional data associated with them, only properties (which refer to the same data in different ways) or methods.

Now, I'd like to keep all of these parameters in a Dictionary<String, IParameter> for easy generic access. The problem is, if I want to refer to a specific one with the special GUI functions, I can't write: FP12 fp12 = (FP12)paramList["FP12"] because you can't downcast to a derived type (rightfully so). But in my case, I didn't add any data, so the cast would theoretically work.

What type of programming model should I be using instead? Thanks!

© Stack Overflow or respective owner

Related posts about c#

Related posts about oop