【发布时间】:2019-11-03 15:04:25
【问题描述】:
我让这些 Worker 类做一些工作:
class WorkerOne implements IWorker {
@Override
public doWork(Resource resource){
// do some work
}
}
我希望所有doWork() 方法都被同一个操作包装。
实现它的一种方法是创建一个抽象类,如下例所示:
abstract class WorkWrapper implements IWorker {
@Override
public doBetterWork(){
Resource resource = // ...
doWork(resource)
resource .close();
}
}
class WorkerOne extends WorkWrapper {
protected doWork(Resource resource){
// do some work
}
}
并将 Worker 调用为:
WorkerOne worker = new WorkerOne();
worker.doBetterWork();
出于某些原因,我不喜欢使用继承。有没有更好的解决方案来做这种包装?
【问题讨论】:
标签: java oop inheritance design-patterns abstract-class