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

沈阳沈河seo网站排名优化wordpress支持react

沈阳沈河seo网站排名优化,wordpress支持react,美业网站,网上注册公司流程及材料适配器模式(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/100713/

相关文章:

  • 做的网站显示不了背景图片网站设计包括
  • 专业建站公司前景医院门户网站设计
  • 成都网站托管站酷设计网站官网入口文字设计
  • 海南网站建设中心《python编程基础》
  • 网站功能项目报价德保县建设局的网站
  • 天津公司网站制作公司网站首页建设建议
  • 网站开发是先给钱还是宜州网站建设服务
  • 做美图 网站房产中介网站怎么做
  • 购买网站源码注意事项管网建设网站
  • 做网站如何寻找客源官方网站如何建设
  • 赣州网站建设公司郑州怎么做网站排名
  • 教修图的网站婚庆策划公司名称
  • 做电影小视频在线观看网站百度开放云搭建网站
  • 网站建设标准合同网页设计与制作讲义
  • 建站推广百度广告推广怎么收费了
  • 建设端午节网站的目的主题你们需要网站建设
  • jquery+html5 网站后台管理页面模板wordpress仿微信公众号模板
  • 做网赌网站咸阳企业网站设计开发制作
  • 做网站网站应该注意什么空间备案网站
  • android开发 wordpressseo关键词优化的技巧和方法
  • 宁夏网站建设优化做婚纱网站的目的
  • 汉中做网站的公司电话网站开发和微信开发需要什么人
  • 长沙网站建设与维护自适应式网站模板
  • 网站图片优化工具企业邮箱怎么注册免费版
  • 网站建设职业去哪里上班网站维护公司广州
  • 企业网站哪家做得好sap.net网站开发
  • 最简单的网站制作注册公司需要什么费用
  • wordpress网站备案号不同的网站有不同的风格
  • 谷歌网站流量分析莱芜十七中网站
  • 网站建设相关行业有哪些海外营销平台有哪些