KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am basically trying to implement a Strategy pattern, but I want to pass different parameters to the "interfaces" implementation (that inherit from the same object) and don't know if this is possible. Maybe I'm choosing the wrong pattern, I get an error similar to 'StrategyA' does not implement inherited abstract member 'void DoSomething(BaseObject)' with the code below: abstract class Strategy { public abstract void DoSomething(BaseObject object); } class StrategyA : Strategy { public override void DoSomething(ObjectA objectA) { // . . . } } class StrategyB : Strategy { public override void DoSomething(ObjectB objectB) { // . . . } } abstract class BaseObject { } class ObjectA : BaseObject { // add to BaseObject } class ObjectB : BaseObject { // add to BaseObject } class Context { private Strategy _strategy; // Constructor public Context(Strategy strategy) { this._strategy = strategy; } // i may lose addtions to BaseObject doing this "downcasting" anyways? public void ContextInterface(BaseObject obj) { _strategy.DoSomething(obj); } }
Tags (comma-separated)
Save Edits
Cancel