JAVA与模式-接口和抽象类
2011-02-22 11:21
120 查看
一接口
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接口声明超类的类型。
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接口声明超类的类型。
相关文章推荐
- 设计模式(三)Java语言的接口和抽象类
- java设计模式(1)接口和抽象类
- java 抽象类实现接口是什么设计模式
- JAVA中接口和抽象类的妙用-我自己也不知道这个是什么设计模式
- java(单例模式、抽象类、接口、内部类)
- java中接口和抽象类及其与接口有关的设计模式
- 【JAVA基础】④关于重载,重写,抽象类,接口,内部类和单例模式
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
- 黑马程序员—Java面向对象(抽象类、模板方法设计模式、接口、多态、内部类)
- Thinking in java 读书笔记(六、接口:抽象类/方法,接口的属性和方法,策略模式,适配器模式,工厂模式)
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
- Java笔记2 面向对象<3>final关键字、抽象类、模板方法模式、接口
- Java 接口和抽象类--缺省模式
- 2.java设计模式接口型模式(读书笔记)(讲解接口和抽象类)
- Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式
- [JAVA设计模式]第一部分:接口、抽象类、设计原则
- 深入理解Java的接口和抽象类[对抽象类与接口在设计模式概念上的解释]
- 黑马程序员 Java基础 面向对象:继承、final关键字、抽象类、模版方法模式、接口、多态、Object类
- Java基础——继承+子父类相关特点+Final关键字+抽象类+模板方法设计模式+接口
- 【设计模式】深入理解Java的接口和抽象类