Effective Java:类与接口

  1. 使类和成员的可访问性最小

方便解耦合,使得这些模块可以独立开发、测试、优化、使用、理解、修改,加快了开发速度,减轻了维护负担。提高了软件的可重用性

  1. 在公有类中使用访问方法而非公有域

即不使用public修饰属性,而是使用private和setter、getter来访问属性

  1. 使可变性最小

为了使类不可变,需要遵循:
1.不要提供任何会修改对象的方法
2.保证类不会被扩展
3.所有域都是final
4.所有域都是private
5.确保对于任何可变组件的互斥访问(如果类具有指向可变对象的域,不要暴漏该对象的引用,也不要使用客户端提供的引用直接初始化该域。可以使用保护性拷贝技术)

  1. 复合优先于继承
  2. 要么为继承而设计,要么禁止继承
  3. 接口优先于抽象类

Java只允许单继承,所以抽象类受到限制。

  1. 接口只用于定义类型

常量接口是对接口的不良使用。可使用常量类代替常量接口,并私有构造方法。

  1. 类层次优先于标签类
  2. 用函数对象表示策略
  3. 优先考虑静态成员类

如果声明成员类不要求访问外围实例,那么就要使用static来声明它。如,Map实例,Entry对象的getKey、getValue、setValue并不需要访问Map,所以使用私有静态成员类是最佳的选择。如果不使用static也可以,但是每个entry都会指向map的引用,这样就浪费了内存空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值