Java继承的设计技巧--摘自java核心技术卷1

1.将公共操作和域放在超类,把公有的东西放在上层可减少耦合。

2.不要使用被保护的域。

有些程序员认为,大多数实例域定义为protected是不错的主意,只有这样,子类才能在需要的时候访问他们。

但是protected机制并不能够带来更好的保护,其原因主要有两点。第一,子类集合无限制,破坏封装性。第二

,包中的其他类也可以访问。

3.使用继承实现 is-a 的关系。

使用继承很容易节省代码,但不能滥用。例如,假设需要定义一个钟点工类。钟点工的信息包含姓名和雇佣日期,

但是没有薪水。他们按小时计费,并且不会因为拖延时间而获得加薪。这似乎在诱导人们由Employee派生出子类Contravtor,然后再加一个工资域。其实这不是个好主意,在打印工资单时会出现麻烦,钟点工和雇员之间不是绝

is-a(继承)关系。

4.除非所有继承的方法都有意义,否则不要使用继承。

5.在覆盖方法时,不要改变预期的行为。

6.使用多态,而非类型信息。否则会引起更多的类型信息,增加冗余。

7.不要过多的使用反射。反射机制能帮忙查看运行时的域和方法,让人们编写出更具通用性的程序。这种功能在编写

系统程序时很实用,但不适合编写应用程序。因为反射很脆弱,如果出错难以检查。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值