Java设计模式--适配器模式

来源:互联网 发布:淘宝商品怎么分类 编辑:程序博客网 时间:2024/06/06 04:04

接口型模式

每个设计模式都旨在解决不同场景的问题,面向接口的设计模式适用于需要对一个类或一组类的方法进行定义或者重定义的场景。

适配器(Adapter)模式

目的:使用不同的接口的类所提供的服务为客户端提供其所期望的接口。

当没有dinginess客户端期待的接口,也可以运用适配器模式,但必须使用对象适配器

如图的对象适配器

对象适配器在一定程度上解决了将对象适配为没有明确定义的接口。

小结:

一下给出适配器模式的例子

类的适配器模式:

package website.dengta.designpattern.adapter;/** * Created by Dengta on 2017/10/12. */public class AdapterNewClass extends FaceEmosion implements Emoji {@Overridepublic void sayHaha() {        this.sayHello();    }}

package website.dengta.designpattern.adapter;/** * Created by Dengta on 2017/10/12. */public interface Emoji {    public void sayHaha();}

package website.dengta.designpattern.adapter;/** * Created by Dengta on 2017/10/12. */public class FaceEmosion {    public void sayHello(){        System.out.println("你好");    }}

package website.dengta.designpattern.adapter;/** * Created by Administrator on 2017/10/12. */public class ClientCall {    public static void main(String[] args) {        Emoji adapter = new AdapterNewClass();        adapter.sayHaha();    }}

对象适配器

package website.dengta.designpattern.adapter;/** * Created by Administrator on 2017/10/12. */public class EyeAction {    public void eyeShape(){        System.out.println("眼睛大大的,很美");    }}

package website.dengta.designpattern.adapter;/** * Created by Administrator on 2017/10/12. */public class ObjectAdapter extends FaceEmosion {    private EyeAction eyeAction;    public ObjectAdapter() {    }    public ObjectAdapter(EyeAction eyeAction) {        this.eyeAction = eyeAction;    }    @Override    public void sayHello() {        eyeAction.eyeShape();    }}

package website.dengta.designpattern.adapter;/** * Created by Administrator on 2017/10/12. */public class ClientObject {    public static void main(String[] args) {        FaceEmosion adapter = new ObjectAdapter(new EyeAction());        adapter.sayHello();    }}

上面的就是适配器模式中的两种应用。

原创粉丝点击