当前位置: 首页 > news >正文

企业网站建设的步骤过程专业网站制作技术

企业网站建设的步骤过程,专业网站制作技术,微信分享链接转换wordpress,wordpress项目插件适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行合作。适配器模式通过创建一个适配器类来转换一个接口的接口,使得原本由于接口不兼容无法一起工作的类可以一起工作。 主要组成部分: 目标…

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行合作。适配器模式通过创建一个适配器类来转换一个接口的接口,使得原本由于接口不兼容无法一起工作的类可以一起工作。

主要组成部分:

  1. 目标接口(Target Interface)

    • 客户端所期望的接口。
  2. 适配器(Adapter)

    • 实现目标接口,并持有一个具体目标对象的引用,将请求委托给该对象。
  3. 不兼容的接口(Adaptee)

    • 现有代码中的一个接口,它是客户端想要使用的,但是不兼容。
  4. 客户端(Client)

    • 需要使用目标接口的代码。

优点:

  1. 灵活性:可以在不改变现有代码的情况下,替换或扩展接口。
  2. 增加可重用性:使得不兼容的接口可以通过适配器进行重用。
  3. 解耦:客户端与不兼容的接口解耦,使代码更清晰。

使用场景:

  • 当你要使用的类存在不兼容的接口时。
  • 当你希望使用一些已有的子类,而它们的接口与您需要的接口不同时。
  • 当你想要创建一个可以与多个不同的接口协同工作的类。

JAVA:

如何将不同类型的电器接口适配到统一的插头接口。

// 1、目标接口 - 电器接口
public interface ElectricSocket {void plugIn();
}
//2、具体目标-美国电器
public class AmericanDevice {public void connect() {System.out.println("连接到美国插座!");}
}
// 具体目标-欧美电器
public class EuropeanDevice {public void plug() {System.out.println("链接到欧美到插座!");}
}
// 适配器1-美国电器适配器
public class AmericanDeviceAdapter implements ElectricSocket{private AmericanDevice device;public AmericanDeviceAdapter(AmericanDevice device){this.device = device;}@Overridepublic void plugIn() {device.connect();}
}
// 适配器2-欧美适配器
public class EuropeanDeviceAdapter implements ElectricSocket{private EuropeanDevice device;public EuropeanDeviceAdapter(EuropeanDevice device){this.device = device;}@Overridepublic void plugIn() {device.plug();}
}
@Test(description = "适配器模式")public void adapterTest(){//创建一个美国电器AmericanDevice device = new AmericanDevice();ElectricSocket socket = new AmericanDeviceAdapter(device);socket.plugIn();//创建一个欧美电器EuropeanDevice device1 = new EuropeanDevice();ElectricSocket socket1 = new EuropeanDeviceAdapter(device1);socket1.plugIn();}

GO: 

假设我现在有一个运维系统,需要分别调用阿里云和 AWS 的 SDK 创建主机,两个 SDK 提供的创建主机的接口不一致,此时就可以通过适配器模式,将两个接口统一。

PS:AWS 和 阿里云的接口纯属虚构,没有直接用原始的 SDK,只是举个例子

package adapterimport "fmt"// ICreateServer 创建云主机
type ICreateServer interface {CreateServer(cpu, mem float64) error
}// AWSClient aws sdk
type AWSClient struct{}// RunInstance 启动实例
func (c *AWSClient) RunInstance(cpu, mem float64) error {fmt.Printf("aws client run success, cpu: %f, mem: %f", cpu, mem)return nil
}// AwsClientAdapter 适配器
type AwsClientAdapter struct {Client AWSClient
}// CreateServer 启动实例
func (a *AwsClientAdapter) CreateServer(cpu, mem float64) error {err := a.Client.RunInstance(cpu, mem)if err != nil {return err}return nil
}// AliyunClient aliyun sdk
type AliyunClient struct{}// CreateServer 启动实例
func (c *AliyunClient) CreateServer(cpu, mem int) error {fmt.Printf("aws client run success, cpu: %d, mem: %d", cpu, mem)return nil
}
// AliyunClientAdapter 适配器
type AliyunClientAdapter struct {Client AliyunClient
}// CreateServer 启动实例
func (a *AliyunClientAdapter) CreateServer(cpu, mem float64) error {err := a.Client.CreateServer(int(cpu), int(mem))if err != nil {return err}return nil
}
package adapterimport "testing"func TestAdapter(t *testing.T) {// 确保 adapter 实现了目标接口var a ICreateServer = &AliyunClientAdapter{Client: AliyunClient{},}err := a.CreateServer(1.0, 2.0)if err != nil {return}var w ICreateServer = &AwsClientAdapter{Client: AWSClient{},}err = w.CreateServer(2.0, 3.0)if err != nil {return}
}

http://www.yayakq.cn/news/864517/

相关文章:

  • 手机网站开发需求文档公司网站集群系统架构及建设思路
  • 蛋糕网站建设规划书网站建设的准备工作
  • 群晖 nas 做网站免费高清图片素材网站有哪些
  • 怎么下载网站所有源码深圳旅游必去十大景点
  • 衡水营销型网站建设甘孜州建设局网站
  • 东莞五金网站建设螺栓球网架
  • 建筑设计网站排行榜网站变成灰色
  • 石家庄网站建设吧哈尔滨网页设计师
  • 云南建设人力资源网站wordpress redis缓存定时
  • 宁波建设工程报名网站dede 两个网站图片路径
  • 微信网站开放工作做网站
  • 鄂州网站建设企业推广网站建设seo基本要求
  • 手机要访问国外网站如何做优势网网站
  • 怎样做免费的网站昆山有做网站的公司吗
  • 公司注销 网站备案申请表网络设计一般不考虑
  • 网站 搜索引擎 提交51视频
  • 免费网站怎么申请网页网站设计公司有哪些
  • 商城网站建设预算网站 如何备案
  • 个人网站图片wordpress网站数据
  • 网站基本建设投资内容小型门户网站模板
  • 网站开发与设计.net做网站前期预算
  • 腾虎广州网站建设如何优化搜索关键词
  • 网站模板织梦苗木推广做哪个网站好
  • 网站开发资格证书ps免费模板网站
  • 自建站怎么接入支付百度推广个人能开户吗
  • 现在网站给源码国际型网站建设
  • 网站已备案下一步怎么做住房和城乡建设部官网
  • dede网站源码下载设计公司logo最重要的是什么
  • 网站托管及维护网站开发前端指什么软件
  • 如何进行网站检查网站域名管理