JavaScript 适配器模式(Adapter Pattern)实现示例
本文介绍 JavaScript 中的适配器模式,旨在解决两个无关联类之间的兼容性问题。通过具体的 JS 代码示例,展示了如何构建适配器以统一接口,使不同数据源能够协同工作。文章提供了完整的 HTML 与 JavaScript 实现逻辑,帮助开发者理解并应用该设计模式。
适配器模式概述
本文通过具体实例解析 JavaScript 中的适配器模式(Adapter Pattern),供读者参考学习。
适配器模式的核心目的是将两个原本互不兼容的类结合在一起,使其能够协同工作。
以下是使用 JavaScript 实现适配器模式的具体示例代码。
JavaScript 代码实现
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="json.js"></script>
<script type="text/javascript" language="javascript">
var DataSource01={};
DataSource01.Author="Kevin";
DataSource01.GetName=function(){
return "Kevin";
};
DataSource01.GetAge=function(){
return 35;
};
var DataSource02={};
DataSource02.Author="Leo";
DataSource02.MyName=function(){
return "Leo";
};
DataSource02.MyAge=function(){
return 25;
};
var DataSource03={};
DataSource03.Author="zhihui";
DataSource03.Name=function(){
return "zhihui";
};
DataSource03.Age=function(){
return 25;
};
//讲所有的放入一个数组中
//在生成随机数后可以以下标
var DataSources=[DataSource01,DataSource02,DataSource03];
var DataAdapter={};
DataAdapter.DataSource=false;
DataAdapter.SetDataSource=function(ds){
DataAdapter.DataSource=ds;
};
DataAdapter.ReturnData=function(){
var Data={};
Data.Author=false;
Data.Name=false;
Data.Age=false;
//生成随机数
//用来随机模拟前台的点击
var rand=Math.random();
rand=Math.floor(Math.random()*3);
console.log(rand);
console.log(DataSources[rand]);
DataAdapter.SetDataSource(DataSources[rand]);
if(rand==0){
Data.Author=DataAdapter.DataSource.Author;
Data.Name=DataAdapter.DataSource.GetName();
Data.Age=DataAdapter.DataSource.GetAge();
}else if(rand==1){
Data.Author=DataAdapter.DataSource.Author;
Data.Name=DataAdapter.DataSource.MyName();
Data.Age=DataAdapter.DataSource.MyAge();
}else if(rand==2){
Data.Author=DataAdapter.DataSource.Author;
Data.Name=DataAdapter.DataSource.Name();
Data.Age=DataAdapter.DataSource.Age();
}
return Data;
};
function ShowData(){
var Data= DataAdapter.ReturnData();
alert(Data.toJSONString());
}
function ChooseDS01(){
DataAdapter.SetDataSource( DataSource01);
}
function ChooseDS02(){
DataAdapter.SetDataSource( DataSource02);
}
</script>
</head>
<body>
<input type="button" value="DataSource01" onclick="ChooseDS01()">
<input type="button" value="DataSource02" onclick="ChooseDS02()">
<input type="button" value="Show Data" onclick="ShowData()">
</body>
</html>
如需了解更多 JavaScript 相关知识,可参考本站系列教程,包括《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》。
希望上述内容能对您的 JavaScript 编程实践提供有益帮助。
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
