When we are using the strategy pattern, is a bad idea to implement an "No Action" interface?
Example:
interface IFlyBehavior
{
void Fly();
}
class UpperFlyBehavior : IFlyBehavior
class UglyFlyBehavior : IFlyBehavior
class NoFlyBehavior : IFlyBehavior
The NoFlyBehavior has an emtpy implementation of the Fly() method.
It seems a little strange to have an implementation of a method that does nothing.
A no implementation version would be the example of null object pattern. Basically exactly as you describe a version that does nothing. It defines an implementation that has no side effects and allows you to write code that assumes there will always be an implementation. If you look at C# example here it is very similar to your situation.