您的位置:首页 > 其它

设计模式之-适配器模式

2017-09-03 15:10 169 查看
适配器模式:其实就是把一个实例类转换成另外的一个接口的类型的,适配器让原本接口不兼容的类可以合作无间。

 

适配器是使用组合和继承的方式,得到兼容的功能.耦合性还是比较高的.

请看例子:

/**狼的接口

 * @author zhangke

 *

 */

interface Wolf{

    void say();

    void run();

}

//狼的具体实现类

class WhiteWolf implements Wolf{

    @Override

    public void say() {

        System.out.println("wowowo,这个狼在叫唤");

        

    }

    @Override

    public void run() {

        System.out.println("跳一次是60米");

    }

    

}

/**人的接口

 * @author zhangke

 *

 */

interface Person{

    void say();

    void run();

}

//黄种人的具体

class YellowPerson implements Person{

    @Override

    public void say() {

        System.out.println("黄种人,主要分布在亚洲的,我们就是黄种人");

    }

    @Override

    public void run() {

        System.out.println("跳一次是10米");

    }

}

对已经存在的人和狼来说他们之间没有任何的关系,那么问题来了,狼人怎么办?他既是狼又是人,身兼两者的特点,但是首先,他是个人.

所以我们要做的就是把这个人看起来像狼就行了.

我们需要实现狼的接口

我们来制造一个狼人出来,看着像人,又有狼的特性

//一个狼人的具体实现类

class WolfPerson implements Wolf{

//需要得到一个狼人需要一个具体的人作为参数传递进来的.

   private Person YellowPerson;

    

    public WolfPerson(Person yellowPerson) {

        super();

        YellowPerson = yellowPerson;

    }

    @Override

    public void say() {

        //还是会说人话的

        yellowPerson.say();

    }

    @Override

    public void run() {

        for (int i = 0; i < 5; i++) {

            //狼人跳一次相当于人跳5次了

            yellowPerson.run();

        }

    }

测试方法:

public static void main(String[] args) {

        //白狼

        WhiteWolf whiteWolf = new WhiteWolf();

        whiteWolf.say();

        whiteWolf.run();

        System.out.println("~~~~~");

        //黄种人

        YellowPerson person = new YellowPerson();

        person.say();

        person.run();

        System.out.println("~~~~~");

        //狼人

        WolfPerson wolfPerson = new WolfPerson(person);

        wolfPerson.say();

        wolfPerson.run();

    }

其实这个模式还是特别简单的,也没有什么好说的了.再见
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: