我从另一个团队获得了一个接口,以包含在我的数据库日志记录代码中。接口只填充抽象类和变量/方法。这样做的原因是什么?
它没有任何逻辑。当我扩展Logger时,我只是覆盖了trace和isTraceEnabled。
我无法理解它。实现方法除了返回他们期望的特定值之外什么都不做,有什么意义呢?
public abstract class Logger {
public abstract void trace(String message);
public abstract bool isTraceEnabled { get; }
}
答案 0 :(得分:4)
当他们给你一个这样的界面时,它意味着两件事之一:
Logger
,并提供每种抽象方法的实现。Logger
执行其库提供给您的日志记录,那么它们应该为您提供一种获取实例的方法扩展抽象Logger
类的类。在这种情况下,您根本不应该扩展该类:您应该预先获取它的实例,将其存储在Logger
类型的变量中,并编程到其接口。