java - 部分覆盖方法 : how to?

标签 java design-patterns overriding extends

我正在实现一个具有如下方法的服务类:

public void makeSomething() {

    // some logic...

    // [optional logic]

    // some other logic...
}

这是一个具体的类,它可以“按原样”实例化和使用,但有时我需要扩展它并覆盖 makeSomething() 方法添加一些额外的逻辑(在中间)。我的意思是:我需要在父方法中使用相同的逻辑,但我需要在返回之前扩展逻辑。

我的第一个想法是在原始方法的中间添加一个“可选”方法:

public void makeSomething() {

    // some logic...

    optionalOperation();

    // some other logic...
}

并最终覆盖扩展类中的 optionalOperation() 方法。但我不喜欢这样:我将有一个空方法在我原来的类中什么也不做......

那么,有没有更好的方法来设计我的方法呢?是否有一些设计模式可以解决我的问题?

最佳答案

设计模式称为Template method恐怕它的工作方式与您不喜欢的完全不同。

例如,Spring 的代码充满了这样的空protected 方法,等待您向其中添加自定义的东西。

关于java - 部分覆盖方法 : how to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22456970/

相关文章:

java - 雅虎商店订单 API 访问

java - 是否有基于依赖关系创建数据对象的创建模式?

javascript - 这种隐藏类的方法叫什么?

C# 总是从基类调用基方法

java - 覆盖 hibernate 映射文件中相关实体的延迟加载设置

java - MyBatis - 连接同一个表返回错误值

java - 最小化和恢复 Swing Window 中断布局和重绘

java - 我写了一个计算正数的方法,但是如何在 main 方法中调用它

design-patterns - 对于自动生成新对象(auto_increment id)的事务来说,工作单元是一个好的模式吗?

JavaDoc 覆盖