Java 设计类和接口的七条优秀实践清单

本文总结了设计Java类和接口的七大优秀实践,包括最小化类和成员的可访问性、使类不可变、优先使用复合、谨慎设计继承、避免构造器调用可覆盖方法、使用类层次优于标签类以及接口优先于抽象类。这些原则有助于提高代码的封装性、可维护性和可扩展性。
摘要由CSDN通过智能技术生成

Java 设计类和接口的七条优秀实践清单

写Java时,其实就是在写各种类和接口,那么在设计类和接口的时候,有哪些优秀实践呢?

本文结合《Effective Java》第四章《类和接口》和自己的理解及实践,讲解了设计Java类和接口的优秀指导原则,供您参考。

 

清单1 - 使类和成员的可访问性最小化

这个原则,其实就是我们常说的“封装”,也是软件设计的基本原则之一。

类与类之间,隐藏内部数据和实现细节,只通过API进行通信,我们常见的set、get方法都是非常好的例子。

信息隐藏的好处:各个模块可独立开发、团队成员可以并行开发、减少过多的暴露从而降低大型系统的风险等。

 

清单2 - 使类的可变性最小化

不可变类是实例不能被修改的类,这种类具有天然的线程安全特性,不需要同步,也不需要进行保护性拷贝。

设计一个不可变类的四条规则:

  • 不提供任何修改对象状态的方法
  • 把类声明为final,保证不被继承和扩展
  • 把所有的域都声明为final,这样可以更清楚的表明意图
  • 使所有域都是private

不可变类唯一的缺点就是,对于每个不同的值都需要创建一个单独的对象,性能差。比如String,因此,对于不可变类,我们一般都会提供一个可变配套类,比如String对应的可变配套类就是StringBuilder和StringBuffer。

 

清单3 - 复合优先于继承

继承有一个天然的缺陷,子类依赖于超类的特定功能,和清单1所提到的封装原则相违背,而采用基于包装模式的复合机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值