
适配器模式
AI-摘要
切换
鸡哔你 GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
适配器模式
1,适配器模式结构模型
我们都知道,电脑是不能直接读取手机内存卡的,这时候我们需要一个能兼容手机内存卡还能对接电脑的工具,就是读卡器,这里的读卡器就是适配器;
Java中适配器模式就是将一个类的接口转换成我们希望的另一个接口
代码示例
加密的接口
package org.ph.adapter;
/**
* <p>
*
* </p>
*
* @author lph
* @package org.ph.adapter
* @project juc-api
* @since 2022 -02 -28 21:35
*/
public interface EncryptAlgorithm {
/**
* 加密方法
*
* @param content 要加密的内容
*/
void encrypt(String content);
}
MD5实现
package org.ph.adapter;
/**
* <p>
*
* </p>
*
* @author lph
* @package org.ph.adapter
* @project juc-api
* @since 2022 -02 -28 21:35
*/
public class MD5lgorithm implements EncryptAlgorithm {
@Override
public void encrypt(String content) {
System.out.println("内容:" + content + "已被MD5加密算法加密");
}
}
SCA实现
package org.ph.adapter;
/**
* <p>
*
* </p>
*
* @author lph
* @package org.ph.adapter
* @project juc-api
* @since 2022 -02 -28 21:35
*/
public class SCAAlgorithm implements EncryptAlgorithm {
@Override
public void encrypt(String content) {
System.out.println("内容:" + content + "已被SCA加密算法加密");
}
}
判断输入的参数或调用是否支持
package org.ph.adapter;
/**
* <p>
*
* </p>
*
* @author lph
* @package org.ph.adapter
* @project juc-api
* @since 2022 -02 -28 21:42
*/
public class Adapter {
/**
* 判断输入的参数或调用是否支持
*
* @param algorithmImpl 具体的实现算法
* @return
*/
public boolean isSupport(Object algorithmImpl) {
return algorithmImpl instanceof EncryptAlgorithm;
}
public void process(Object algorithmImpl, String content) {
((EncryptAlgorithm) algorithmImpl).encrypt(content);
}
}
输入算法的匹配工厂
package org.ph.adapter;
/**
* <p>
*
* </p>
*
* @author lph
* @package org.ph.adapter
* @project juc-api
* @since 2022 -02 -28 21:48
*/
public class AlgorithmSimpleFactory {
public Object createSpecifAlgorithm(String algorithm) {
switch (algorithm) {
case "SCA":
return new SCAAlgorithm();
case "MD5":
return new MD5lgorithm();
default:
return null;
}
}
}
Main测试
package org.ph.adapter;
import java.util.Scanner;
/**
* <p>
*
* </p>
*
* @author lph
* @package org.ph.adapter
* @project juc-api
* @since 2022 -02 -28 21:45
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入你要使用的加密算法:");
String algorithmName = scanner.nextLine();
System.out.println("请输入要加密的密文:");
String content = scanner.nextLine();
Object specifAlgorithm = new AlgorithmSimpleFactory().createSpecifAlgorithm(algorithmName);
Adapter adapter = new Adapter();
if (adapter.isSupport(specifAlgorithm)) {
adapter.process(specifAlgorithm, content);
} else {
System.out.println("你的算法【" + algorithmName + "】不支持");
}
}
}
}
本文是原创文章,采用CC BY-NC-ND4.0协议,完整转载请注明来自蒲公英阁
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果