当我们使用策略模式时,实现“无操作”接口是一个坏主意吗?

例:

interface IFlyBehavior
{
    void Fly();
}

class UpperFlyBehavior : IFlyBehavior
class UglyFlyBehavior : IFlyBehavior


类别NoFlyBehavior:IFlyBehavior

NoFlyBehavior具有Fly()方法的空实现。

具有不执行任何操作的方法的实现似乎有些奇怪。

最佳答案

没有实现的版本将是空对象模式的示例。基本上与您描述的什么都不做的版本完全相同。它定义了没有副作用的实现,并且允许您编写假定始终存在实现的代码。如果您查看C#示例here,则与您的情况非常相似。

08-07 05:33