设计模式学习笔记01
2014-02-26 16:55
316 查看
接口与抽象类的区别
1.一个子类只能继承一个抽象类,但是却可以实现很多个接口。
2.抽象类中可以有自己的数据成员,也可以有不是抽象类型的方法,接口中,只能有不能修改的成员,所有方法都是抽
象的。
3.实现抽象类和接口必须实现其中的每个方法,抽象类中可以有非抽象方法,接口不可以
4.接口中的变量类型都是public static final的,必须给初值,实现类中不可以重新定义,也不可以改变其值。抽象类中相
反。
适配器模式
一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配无法在一起工作的连个类能在一起工作。
例A有某些功能,但需要一个xml读取模块才能工作。
这个模块需要实现这个接口
public interface xmlread{
public InputStream xmlReader();
}
另一个类B恰好也有这个功能,但是B实现的是另外一个接口
public interface xmlread2{
public InputStream xmlReader2();
}
适配器的作用就体现了
public class Adapter extends B implements xmlreader{
public InputStream xmlReader(){
this.xmlReader2();
}
}
适配器模式需要4个角色
1、目标,上例中就是 接口1
2、客户,
3、被适配者 上例中是B
4、适配器
1.一个子类只能继承一个抽象类,但是却可以实现很多个接口。
2.抽象类中可以有自己的数据成员,也可以有不是抽象类型的方法,接口中,只能有不能修改的成员,所有方法都是抽
象的。
3.实现抽象类和接口必须实现其中的每个方法,抽象类中可以有非抽象方法,接口不可以
4.接口中的变量类型都是public static final的,必须给初值,实现类中不可以重新定义,也不可以改变其值。抽象类中相
反。
适配器模式
一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配无法在一起工作的连个类能在一起工作。
例A有某些功能,但需要一个xml读取模块才能工作。
这个模块需要实现这个接口
public interface xmlread{
public InputStream xmlReader();
}
另一个类B恰好也有这个功能,但是B实现的是另外一个接口
public interface xmlread2{
public InputStream xmlReader2();
}
适配器的作用就体现了
public class Adapter extends B implements xmlreader{
public InputStream xmlReader(){
this.xmlReader2();
}
}
适配器模式需要4个角色
1、目标,上例中就是 接口1
2、客户,
3、被适配者 上例中是B
4、适配器
相关文章推荐
- 设计模式学习笔记01
- C#设计模式(学习笔记[01])
- android设计模式学习笔记01
- headfast设计模式学习笔记01
- 《设计模式:基于C#的工程化实现及扩展》学习笔记 01 准备篇 -- 前言
- 设计模式-笔记01
- Java Web学习笔记2——JavaBean 与 设计模式一(Model 1)
- HeadFirst 设计模式学习笔记4--工厂模式
- GoF设计模式学习笔记 前言
- HeadFirst 设计模式学习笔记1--策略模式
- 设计模式学习笔记(1)之单例模式
- Header First设计模式学习笔记——工厂模式
- 设计模式学习笔记(20)——备忘录模式
- Head First 设计模式学习笔记 ——策略模式
- 设计模式学习笔记--服务定位器模式
- 设计模式学习笔记三(行为型模式)
- 二十二、享元模式——设计模式学习笔记
- 设计模式C++学习笔记之一(Strategy策略模式)
- java 设计模式学习笔记十五 strategy 策略设计模式
- 设计模式C++学习笔记之八(Adapter适配器模式)