设计模式 之 构建型模式<一>适配器模式(Adapter Pattern)

在对象适配器模式结构图中包含如下几个角色:
● Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以 是具体类。
● Adapter(适配器类):适配器可以调用另一个接口,作为一个转换器,对Adaptee和Target进 行适配,适配器类是适配器模式的核心,在对象适配器中,它通过继承Target并关联一个 Adaptee对象使二者产生联系。
● Adaptee(适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口 需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可 能没有适配者类的源代码。

案例:
Sunny软件公司OA系统需要提供一个加密模块,将用户机密信息(如口令、邮箱等)加 密之后再存储在数据库中,系统已经定义好了数据库操作类。
为了提高开发效率,现需 要重用已有的加密算法,这些算法封装在一些由第三方提供的类中,有些甚至没有源代 码。
试使用适配器模式设计该加密模块,实现在不修改现有类的基础上重用第三方加密 方法

目标抽象类
//目标抽象类
public interface DataBase {
    //加密用户名和密码
    public String EncryptionPwd(String pwd);
    public String EncryptionUser(String user);

}
View Code

     适配者

//适配者
public class Encryption {
    //加密算法
    public String EncryptionUser(String data){
        return "返回加密后的数据";
    }

}
View Code
适配器
//适配器类
public class Adapter implements DataBase {
    Encryption encryptio=null;
    public Adapter(){
        encryptio=new Encryption();
    }

    @Override
    public String EncryptionPwd(String pwd) {
         return encryptio.EncryptionUser(pwd);
    }

    @Override
    public String EncryptionUser(String user) {
        return encryptio.EncryptionUser(user);
    }
}
View Code

 

 
posted @ 2020-08-02 16:03  zp007  阅读(374)  评论(0编辑  收藏  举报