java - 避免在不同上下文中多次实现同一方法

标签 java oop design-patterns inheritance

我有一个简单的设计问题。我不确定如何在可扩展性和面向对象方面设计以下“情况”。

interface IA {
  void update();
}

class A implements IA {
    public void update(){
        updateInX();
        updateInY();
    }

    private void updateInX(){
      ...
    }

    private void updateInX(){
      ...
    }
}

冗余(updateInX(),updateInY())似乎是一个糟糕的设计,但我不知道如何改进它。我将感谢您的帮助!

最佳答案

这个问题可以使用 Template method design pattern 来解决。您基本上将定义包含必须重写的抽象方法的抽象类,并将计算本身保留在抽象类上。例如

public abstract class Something {

    public void update(){
       updateInX();
       updateInY();
       printResult();
    }

    private void printResult() {
        //print
    }

    protected abstract void updateInX();
    protected abstract void updateInX();
}

这将使子对象仅实现必要的方法,并将计算留给基类。

关于java - 避免在不同上下文中多次实现同一方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19492194/

相关文章:

java - 我什么时候应该在构造函数内部初始化类字段,什么时候应该在构造函数外部初始化?

java - SecurityContextLogoutHandler 的 clearAuthentication 如何不是线程安全的?

C++:隐藏基本静态成员

c# - 如何缩短这段 C# 面向对象的代码?

Java 接口(interface)和对象

python - Python条件导入的设计

java - 有人可以帮助我了解 ImageIcon 在 java 中的工作原理吗?

java - 根据JSON的一些属性获取JSON文档

algorithm - 为不同类型实现价格矩阵

design-patterns - 里氏替换原则 (LSP)、代理模式和异常(exception)