关注类和接口

简介:

最小化可访问性

1:包括方法,属性,内部类,提供最少方法的接口供外部使用。
2:一个类如果只被另一个类使用,应该作为类的内部类
3:可以default 方便测试类访问,不能超过default了。

不要有public属性

提供private 和一个public方法

最小化可变性

不可变类好处,随便被各个类引用,随便被多线程并发,随便被使用
对象提供的时候就设置好了属性,不提供set方法
final class防止子类提供set方法,构造器私有,提供静态方法(valueOf()等)
final修饰属性,仅在构造函数提供设置机会,完全完成初始化
private修饰属性,防止被访问
可变属性中,不要引用不可变属性

复合优于继承

为了复用代码,最好是互相引用,而不是继承,父类稍微改一下就爆炸

慎用继承

继承破坏了封装性,能不用就不用。
1:一般final class
2:非要继承,请提示好哪些方法可以覆盖,哪些方法是不能动的。
3:abstract class 和interface ,除外。他们可以很好的使用继承

接口优于抽象类

类只能单继承,可以多实现接口,所以接口更灵活,更加随意。
抽象类的单继承,觉得了多个抽象类必须是互相有上下游,才能公用多个。实现符合功能。而接口随意。
模版类,优先选择抽象类型。

接口仅包含方法

不要把常量放接口里,常量一般是实现细节,和接口无关

同类继承

同类实现继承分开,不要写个大类,type ==xxx之类的模式

匿名函数使用对象

callback function 等回调函数最好不要有属性,提供单例供其他需要者使用。

静态内部类

非静态,匿名类,局部类 三种内部类,缺点比静态内部类多

类结构

自上而下

1:类注释
2:静态常量
3:静态类
4:属性
5:构造函数
6:方法

目录
相关文章
|
存储 小程序 前端开发
微信小程序进阶——后台交互个人中心授权登录
微信小程序进阶——后台交互个人中心授权登录
536 0
|
关系型数据库 MySQL
Mysql连接无效(invalid connection)解决方案
Mysql连接无效(invalid connection)解决方案
1944 0
Mysql连接无效(invalid connection)解决方案
|
11月前
|
NoSQL MongoDB 数据库
【直播回放】MongoDB全球开发者认证介绍线上直播 助力您掌握企业级实战能力
想通过MongoDB认证提升竞争力却无从下手?这场线上直播为你解惑!权威解读考试大纲、题型与评分标准,资深专家分享备考策略,涵盖学习计划、实战技巧及心理调整。更有最新认证激励政策、专属徽章与大礼包等你解锁!无论你是开发者、管理员还是学生,都能为职业发展铺路。立即预约3月26日直播回放,与MongoDB专家互动答疑,轻松迈向专业高峰!
|
11月前
|
存储 Java
超长String接收处理
超长String接收处理
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架基础介绍
本文介绍了AI算法、神经网络及其应用,解释了为何神经网络需要训练及AI框架的作用。通过解析深度学习的数学原理与反向求导算法,阐述了AI框架如何作为模型设计、训练和验证的标准工具,支持算法封装、数据调用及计算资源管理,强调了AI框架的发展历程和技术迭代。
499 9
【AI系统】AI 框架基础介绍
|
敏捷开发 数据可视化 API
6款高效的任务看板管理工具,哪款能提升团队协作效率
本文对比了六款流行的任务看板管理工具:板栗看板、Trello、Asana、Monday.com、ClickUp 和 Jira。从功能、易用性、价格等方面进行了详细分析,帮助用户根据团队规模、项目复杂度及预算选择最适合的任务管理工具。
6款高效的任务看板管理工具,哪款能提升团队协作效率
|
自然语言处理 Shell Linux
基于Amlogic 安卓9.0, 驱动简说(一):字符设备驱动,手动创建设备
本文是关于在Amlogic安卓9.0平台上创建字符设备驱动的教程,详细介绍了驱动程序的编写、编译、部署和测试过程,并提供了完整的源码和应用层调用示例。
479 0
基于Amlogic 安卓9.0, 驱动简说(一):字符设备驱动,手动创建设备
|
Java Unix 编译器
C语言:编程世界的基石与魅力之源
C语言是编程的基础,由丹尼斯·里奇在70年代创造,主要用于系统编程和嵌入式系统开发,以其简洁语法、高效执行和硬件访问能力著称。它影响了众多现代编程语言,并在游戏开发等领域有重要应用。通过实例展示了C语言计算两个整数和的功能,强调其在编程教育和计算机科学中的持续价值。
|
网络协议
rtmp改udp推流,并测试延时性能
rtmp改udp推流,并测试延时性能
610 0
rtmp改udp推流,并测试延时性能
|
存储
ArcGIS Pro新功能 | 模型构建器篇
ArcGIS Pro新功能 | 模型构建器篇
658 0