不想你写的public方法被随意调用?

目前问题

在用java开发中会设计很多架构,比如mvvm。在model层中会有很多public方法,因架构设计这些public方法只希望repository去调用,而不希望view或者viewmodule直接去调用。简单的架构还可以自觉遵守规范,但在复杂架构上,会有不熟悉业务同学或者图方便误调用public方法破坏架构规范,造成耦合。

解决方案

开发CallerClass注解,在类/方法上注册可调用的类名,只有注册的类可以调用public方案,未注册的类在调用方法时会在ide上报错,强制遵守架构规范。

使用方法

  1. 引入implement 'com.wish:lintModule:${lastReleaseVersion}'工程
  2. 在需要限制调用者的类或方法上添加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

使用注意

此功能类似CallSuper,只是在idea里起到错误提示作用,并没有改变java的public使用规则,仍然能够编译通过。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容