jeudi 20 juin 2019

Parent wrapping child class methhod

I have these Worker classes doing some job

class WorkerOne implements IWorker {
    @Override
    public doWork(Resource resource){
     // do some work
    }
}

I want all doWork() methods to be wrapped by the same operation.

One way to achieve it is creating an abstract class as the following example:

abstract class WorkWrapper implements IWorker {
    @Override
    public doBetterWork(){
       Resource resource = // ...
       doWork(resource)
       reource.close();
    }
}


class WorkerOne extends WorkWrapper {

    protected doWork(Resource resource){
     // do some work
    }
}

and invoke the Worker as-

WorkerOne worker = new WorkerOne();
worker.doBetterWork();

For some reasons I prefer not to use inheritance. Is there a better solution to do this wrapping?

Aucun commentaire:

Enregistrer un commentaire