在spring框架下使用抽象类

在处理几个相似业务时,我们往往采用策略模式去构建我们的代码。每个业务定义一个处理类,还会有一些通用的处理,我们可以把他们放到抽象类中。

在Spring框架下,抽象类(abstract)也可以注入Bean。我们的业务类继承这个抽象类,在需要用到这些通用的处理时,调用下即可。

下面举一个例子,用不同武器攻击敌人,并把攻击结果保存到数据库。

接口:

java 复制代码
public interface Attack {

    boolean  attackEnemy(Info  info);
}

抽象类:

typescript 复制代码
@Slf4j
public abstract class AbstractAttack implements Attack{


    @Resource
    private SaveResultService saveResultService;

    /**
     * 通用处理,保存攻击结果
     * @param result
     * @return
     */
    public boolean saveResult(Result result) {

  
         return saveResultService.save(result);
    }
    

}

用手榴弹攻击

scala 复制代码
@Service
public class FragAttack extends AbstractAttack{
    
    
    @Override
    public boolean attackEnemy(Info info) {
        
        //1.启动攻击任务
        
        //2.保存攻击结果
        super.saveResult(result);
        return false;
    }
}

OK,演示到此结束,你学费了吗

相关推荐
Rust研习社34 分钟前
组合真的优于继承吗?为什么 Rust 和 Go 都拥抱组合舍弃继承?
后端·rust·编程语言
IT_陈寒1 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
CaffeinePro2 小时前
Pydantic深度使用:数据校验、枚举、ORM映射
后端·fastapi
Chenyiax2 小时前
从 Chat 到 Responses:OpenAI API 抽象为什么变了?
后端
MariaH2 小时前
Koa和Express的区别
后端
MariaH2 小时前
Koa框架的使用
后端
luckdewei3 小时前
那个用 passlib 做认证的新同事,上线第一天就把用户密码写进了日志
后端
ping某5 小时前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
JustHappy5 小时前
我汇总了身边朋友的经历才发现,其实第一份实习是最难找的......
前端·后端·面试
uhakadotcom5 小时前
在python 的 工程化架构中 ,什么是 薄包装器层?
后端·面试·github