Java – common code when rewriting abstract methods – Design Problems

I have an abstract class like this

public abstract Stuff
{
    public abstract void doStuff();
}

Several classes are extending stuff, overriding dostuff() Dostuff () usually performs completely different tasks for each implementation, but shares a common part

What is the best way to achieve this?

I don't want to write something like:

public void doStuff()
{
    doTheCommonPart();
    ...
}

In each extension class

Solution

Or:

> put the public code in the protected method of the Stuff class and call it from every implementation of doStuff; Either > add the public code to the abstract stuff class and call another abstract method

For example (1)

public abstract Stuff  
{
    public abstract void doStuff();

    protected void commonCode() 
    {
      //...
    }
}

Or (2)

public abstract Stuff
{
    public void doStuff() 
    {
      // Do the common stuff initially...
      // ...

      // Then call the subclass implementation
      doRealStuff();
    }

    public abstract void doRealStuff();
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>