不想你写的public方法被随意调用()
目前问题
在用java开发中会设计很多架构,比如mvvm。在model层中会有很多public方法,因架构设计这些public方法只希望repository去调用,而不希望view或者viewmodule直接去调用。简单的架构还可以自觉遵守规范,但在复杂架构上,会有不熟悉业务同学或者图方便误调用public方法破坏架构规范,造成耦合。
解决方案
开发CallerClass注解,在类/方法上注册可调用的类名,只有注册的类可以调用public方案,未注册的类在调用方法时会在ide上报错,强制遵守架构规范。
使用方法
- 引入implement 'com.wish:lintModule:${lastReleaseVersion}'工程
- 在需要限制调用者的类或方法上添加CallerClass注解,并注册可调用的类。
@CallerClass(LoginRepository::class)
class ApiModel {
fun getUser(): User {
return User()
}
}
使用效果
LoginRepository可以正常使用ApiModel并调用getUser方法。
文章图片
image1.png LoginViewModel使用ApiModel就会在ide里报错。
文章图片
image2.png git地址
https://github.com/xyz234wish/LintChecks
使用注意
【不想你写的public方法被随意调用()】此功能类似CallSuper,只是在idea里起到错误提示作用,并没有改变java的public使用规则,仍然能够编译通过。
推荐阅读
- 热闹中的孤独
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 尽力
- 你到家了吗
- 爱就是希望你好好活着
- 为什么你的路演总会超时()
- 死结。
- 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理)
- 奔向你的城市
- 喂,你结婚我给你随了个红包