深入适配器模式

来源:互联网 发布:手机购物安全软件 编辑:程序博客网 时间:2024/06/10 22:42

上次说过了Java里面23种设计模式中的单例设计模式,今天我来说一下23种设计模式中的适配器模式。

首先我来说一下什么是适配器模式:

通俗的讲就是,你定义了一个接口(接口都是抽象的,自然里面的方法也就是抽象的了),然后你就要写一个类去实现这个抽象接口里面的抽象方法。但是现实中如果这个接口中定义的方法有太多,而其中的一些方法子类又用不到,给程序编写造成了一定的麻烦。那么这个时候我们就户用到是适配器模式。它思想是这样的:

①首先先编写一个接口,里面先定义一些抽象方法。

②写一个抽象类去实现这个接口,注意实现这个接口的方法体必须是空的,不要写。

首先说到抽象,一定会想到Java里面的一个关键字abstract.这个关键字有五个特性:抽象类前面必须添加abstract关键字,否则就是普通类;抽象类不能被实例化,不能对外new对象;抽象类不能被实例化,但是有构造方法,构造方法是可以被子类去创建对象的;抽象类中可以没有抽象方法,但是抽象方法一定要出现在抽象类中;一个非抽象类去继承一个抽象类,必须将他的抽象方法实现;

这样的话,这个实现类就不会被直接使用,而且又满足以上的一些前提。类是抽象的,里面的方法不是抽象的。

③让一个类去继承这个实现类,并且有选择的实现里面的方法。

④写一个测试类,注意new对象的时候一定不能出现这个实现类的名字,因为上面说了抽象类不能new对象。

具体的代码如下:

一一对应

第一步:

public interface Student{

public void sleep();

public void eat();

public void play();

}


第二步:

public abstract class StudentAdapter implements Student{

public void sleep(){}

public void eat(){}

public void play(){}

}


第三步:

public class StudentImpl extends StudentAdapter{

public void sleep(){

System.out.println("我要睡回笼觉!!!”);

}

public void play(){

System.out.println("我要玩皮球!!!");

}

}


第四步:

public class Test{

public static void main(String[] args){

Student s = new StudentImpl();

s.sleep();

s.play();

}

}


结果可想而知:我要睡回笼觉

    我要玩皮球

这就是一个适配器模式。

0 0
原创粉丝点击