JAVA与模式-接口和抽象类

一接口

1.接口是实现可插入性的保证

2.实现一个接口的具体类往往是没有具体关联的,有的只是因为他们有同样的责任,对外可以提供同样的服务,具有接口中一组行为。

如:swing中的监听器,只要你实现接口,你就可以监听具有发出此功能的控件。一个类只要实现Runnable接口,此类就具有线程的功能,具有线程的服务。

3.类型的声明

java中局域变量,方法参数,方法的返回,数据类型的转换应该声明为抽象类或接口。

更好的是声明为接口。

具体类中应该是实现接口或者抽象类中声明过得方法,而不应该给出多余的方法.

4.接口是对客户的承诺,承诺已断作出,就不能改变.

 

二抽象类

1.抽象类是用来继承的,具体类不是的.应该尽可能不要从具体类继承.

2.在一个类形成的继承等级结构中,树叶节点应该是具体类,树枝节点应该是抽象类

3.抽象类中应该集中更多的代码。

4.数据应该集中到具体类中,数据是否使用,都会占据内存的.

5.什么时候应该使用继承 (满足里氏替换原则)

a.是is-a关系,而不是has-a关系

比如:苹果 is-a 水果  人 has-a 学生角色 或 司机角色 或 IBM角色

is-a关系用继承,has-a关系用聚合

b.只有在商业逻辑中处于相同的概率,才可以继承。不要从工具类继承.

c.不可能将一个类得子类替换为另外一个类得子类

d.子类具有扩展超类的责任,而不是替换(override)或者撤销超类得责任.

 

6.应该使用java接口声明超类的类型。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值