Java设计模式之缺省模式
来源:互联网 发布:mac os x 10.12 cdr 编辑:程序博客网 时间:2024/05/27 20:52
1、概念
缺省适配模式为一个接口提供缺省实现,这样子类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。开发中BaseAdapter实现ListAdapter就是使用这种设计模式。
2、运用
一个接口有很多抽象方法,当要写接口的实现类,就必须要实现接口中很多无关的抽象方法,这时就可以使用缺省适配模式,设计一个抽象的适配器类实现接口,并为所有方法提供空实现。用户类只需要继承适配器类,实现必要的方法就可以了。
模式所涉及的角色有:
InterfaceA:目标接口。可能定义有很多方法,但这些方法不一定全都被用户类所需要。
AbstractClassB:缺少适配模式的核心。它实现InterfaceA接口,为所有方法提供空的实现。
ClassBImpl:用户类,它需要实现InterfaceA接口。但因为InterfaceA方法众多,而ClassBImpl中对其中一两个方法(比如这里的Fun1())感兴趣。如果直接实现InterfaceA,就需要提供众多的空方法。所以它继承AbstractClassB,只需要重写它感兴趣的方法即可。既实现了InterfaceA接口,又省去了定义空方法的麻烦。
public interface InterfaceA{
void fun1();
void fun2();
void fun3();
void fun4();
void fun5();
}
以上代码定义了目标接口,接下来创建一个抽象的适配器类实现接口。
class AbstractB implements InterfaceA{
@Override
public void fun1() {}
@Override
public void fun2() {}
@Override
public void fun3() {}
@Override
public void fun4() {}
@Override
public void fun5() {}
}
观察以上代码可知,抽象的适配器类实现了目标接口,并给所有的方法提供空实现。
此时我们只需创建抽象类的子类,实现自己感兴趣的方法即可。
class ClassBImpl extends AbstractB{
@Override
public void fun1() {
super.fun1();
}
}
- Java设计模式之缺省模式
- java 设计模式-结构模式之缺省适配器模式
- 设计模式:缺省适配器模式
- 设计模式-缺省适配器模式
- 设计模式-缺省适配器模式
- 设计模式--缺省适配器模式
- 设计模式--缺省适配模式
- 设计模式:缺省适配模式
- Java之设计模式
- java之设计模式
- java之设计模式
- Java之模式设计
- Java之设计模式
- 设计模式之java
- Java之设计模式
- Java之设计模式
- Java之设计模式
- java设计模式之状态设计模式
- AFNetworking学习
- Android Graphic SurfaceFlinger分析
- JAVA三大框架SSH的各自作用
- iOS之真机调试的情况下获取并查看数据库
- Java 关于加密哪些事儿
- Java设计模式之缺省模式
- 119.Binary Search Tree Iterator
- IOS 警告 汇总
- java生成图片验证码--公用
- 推荐几款git管理工具
- xml入门
- Java设计模式之模板方法设计模式
- 程序员技术练级攻略
- css中解决textarea高度随内容自适应的问题