适配器模式

适配器模式的探究

你。 提交于 2019-12-06 13:07:21
1.意图 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 2.问题提出 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后向用户呈现出美观的图表。 在开发过程中, 你决定在程序中整合一个第三方智能分析函数库。 但是遇到了一个问题, 那就是分析函数库只兼容 JSON 格式的数据。 你可以修改程序库来支持 XML。 但是, 这可能需要修改部分依赖该程序库的现有代码。 甚至还有更糟糕的情况, 你可能根本没有程序库的源代码, 从而无法对其进行修改。 3.解决方案 你可以创建一个适配器。 这是一个特殊的对象, 能够转换对象接口, 使其能与其他对象进行交互。 适配器模式通过封装对象将复杂的转换过程隐藏于幕后。被封装的对象甚至察觉不到适配器的存在。例如, 你可以使用一个将所有数据转换为英制单位 (如英尺和英里) 的适配器封装运行于米和千米单位制中的对象。 适配器不仅可以转换不同格式的数据,其还有助于采用不同接口的对象之间的合作。 它的运作方式如下: 适配器实现与其中一个现有对象兼容的接口。 现有对象可以使用该接口安全地调用适配器方法。 适配器方法被调用后将以另一个对象兼容的格式和顺序将请求传递给该对象。 有时你甚至可以创建一个双向适配器来实现双向转换调用。 为了解决数据格式不兼容的问题, 你可以为分析函数库中的每个类创建将 XML

设计模式学习07:适配器模式

99封情书 提交于 2019-12-06 11:40:52
设计模式学习07:适配器模式 参考资料: https://blog.csdn.net/wwwdc1012/article/details/82780560 定义   适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。   在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。   根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系。 角色   Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。   Adapter(适配器类):适配器可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配,适配器类是适配器模式的核心,在对象适配器中,它通过继承Target并关联一个Adaptee对象使二者产生联系。   Adaptee(适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法

虚拟机仅主机模式联网

孤街浪徒 提交于 2019-12-06 10:52:34
1.点击更改适配器选项 2.右击以太网--点击属性--共享--选择要共享的网卡 3.修改 ifcfg-eth0文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0 注意:GATEWAY写的是本机的vmnet1的ip   IPADDR写的是虚拟机的ip 4.重启网卡 service network restart 5.ping www.baidu.com 联网成功 来源: https://www.cnblogs.com/sx66/p/11979163.html

设计模式——个人理解

这一生的挚爱 提交于 2019-12-06 08:25:43
写在前面 设计模式是基于固定设计场景的一套解决方案,目的是为了完成开闭原则,或者说面向后续的需求变更,以成本最低的改动和测试完成新功能。同时设计模式也是一种程序员之间的交流语言,可以省去很多沟通成本。 在工作的过程中,从最初不知如何使用设计模式,到中间刻意使用设计模式,到今天稍有好转的正确的使用设计模式,踩了许多坑,也有过度设计的时候,为了避免今后在犯同样的错误,所以准备将自己在项目实践的过程中使用过的设计模式记录下来。 设计模式中,有一些实战里用过,有的没用过,没用过的应该是对这个设计方法没有领悟透彻,所以不知道该怎么用。 目前先按照自己的理解记录下来,有更深的领悟会更新。 创建型设计模式 1、工厂方法模式(FactoryMethod) 工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。” 工厂方法模式,是在抽象类中定义创建对象的方法,调用声明创建过程(抽象方法,但创建对象的过程的实现是在实现类中定义。 也就是说,在创建对象时,创建步骤是固定的,但各个步骤的实现是多种多样的,这种情况下可以使用工厂方法。 例如:创建一个电脑主机,需要安装CPU,内存,硬盘,显卡。这个安装步骤是固定的,但是由不同的工厂实现类去实现这几个步骤。 这种父类声明,子类实现的方式有很多,把这种方法用于创建对象,就叫工厂方法

适配器模式

和自甴很熟 提交于 2019-12-06 06:31:05
什么是适配器模式? 将一个接口转换成客户需要的接口,已达到在新对象中使用以前的旧接口。属于结构型模式,该模式主要解决对以前旧接口的兼容性。 UML类图 对象适配器 ''' 示例: 键盘PS2圆形接口转USB接口 ''' import abc # 目标接口 class AbsUSB(abc.ABC): @abc.abstractmethod def print(self): ... # 以前旧接口 class AbsPS2(abc.ABC): @abc.abstractmethod def out(self): ... # 旧对象 class KeyboardPS2(AbsPS2): def out(self): return "ps2" # 适配器 class Adapter(AbsUSB): def __init__(self, ps2: AbsPS2): self.ps2 = ps2 def print(self): '让旧ps2接口 兼容 usb 接口' s = self.ps2.out() return s + " to usb" if __name__ == "__main__": ps2 = KeyboardPS2() # 旧对象 usb = Adapter(ps2) # 通过适配器把旧对象转换成目标对象接口 p = usb.print() print(p) 类适配器

结构型模式(一) 适配器模式

北城余情 提交于 2019-12-06 00:14:26
适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。 结构型模式描述如何将类或者对象结合在一起形成更大的结构。 适配器模式包含四个角色: 目标抽象类 定义客户要用的特定领域的接口; 适配器类 可以调用另一个接口,作为一个转换器,对适配者和抽象目标类进行适配,它是适配器模式的核心; 适配者类 是被适配的角色,它定义了一个已经存在的接口,这个接口需要适配;在 客户类 中针对目标抽象类进行编程,调用在目标抽象类中定义的业务方法。 在类适配器模式中,适配器类实现了目标抽象类接口并继承了适配者类,并在目标抽象类的实现方法中调用所继承的适配者类的方法;在对象适配器模式中,适配器类继承了目标抽象类并定义了一个适配者类的对象实例,在所继承的目标抽象类方法中调用适配者类的相应业务方法。 适配器模式的 主要优点 是将目标类和适配者类解耦,增加了类的透明性和复用性,同时系统的灵活性和扩展性都非常好,更换适配器或者增加新的适配器都非常方便,符合“开闭原则”;类适配器模式的 缺点 是适配器类在很多编程语言中不能同时适配多个适配者类,对象适配器模式的缺点是很难置换适配者类的方法。 适配器模式 适用情况 包括:系统需要使用现有的类

设计模式之适配模式、外观模式

孤街浪徒 提交于 2019-12-05 22:00:02
一、适配模式 1、什么是适配器 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 2、适配器分类 适配器分为,类适配器、对象适配、接口适配方式 类适配器方式采用继承方式,对象适配方式使用构造函数传递 3、适配器案例 我们就拿日本电饭煲的例子进行说明,日本电饭煲电源接口标准是110V电压,而中国标准电压接口是220V,所以要想在中国用日本电饭煲,需要一个电源转换器。 1)定义日本和中国两种接口及其实现 我们先定义日本220V电源接口和实现。 110V电源接口 //日本110V 电源接口 public interface JP110VInterface { public void connect(); } 110V电源接口实现 public class JP110VInterfaceImpl implements JP110VInterface { @Override public void connect() { System.out.println("日本110V,接通电源,开始工作.."); } } 我们再定义中国220V电源接口和实现。 public interface

设计模式之适配模式、外观模式

戏子无情 提交于 2019-12-05 21:59:29
一、适配模式 1、什么是适配器 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 2、适配器分类 适配器分为,类适配器、对象适配、接口适配方式 类适配器方式采用继承方式,对象适配方式使用构造函数传递 3、适配器案例 我们就拿日本电饭煲的例子进行说明,日本电饭煲电源接口标准是110V电压,而中国标准电压接口是220V,所以要想在中国用日本电饭煲,需要一个电源转换器。 1)定义日本和中国两种接口及其实现 我们先定义日本220V电源接口和实现。 110V电源接口 //日本110V 电源接口 public interface JP110VInterface { public void connect(); } 110V电源接口实现 public class JP110VInterfaceImpl implements JP110VInterface { @Override public void connect() { System.out.println("日本110V,接通电源,开始工作.."); } } 我们再定义中国220V电源接口和实现。 public interface

适配器

谁说胖子不能爱 提交于 2019-12-05 20:26:23
适配器是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口。比如:电源适配器、三角架基座转接部件、USB与串口的转接设备等。 多协议代理支持的协议适配器包括:SNMP、TL1、RMI、CORBA、HTTP和HTML适配器。 在实际开发过程中,我们经常遇到这样的事情,我们根据初步的需求制定了一个基类,在开发过程中才了解到详细的需求或者需求发生了变动。而开发工作中的接口早已经定义完毕,并已经大规模投入编码。此时若改动接口的定义会造成很多编码上重复性的修改工作,并进而有可能造成修改不完全而导致的语义错误或逻辑错误。语义错误尚可以在编译阶段发现,而一旦发生逻辑性的错误,后果将会非常严重,甚至足以导致系统崩溃。此时就需要用到适配器模式的设计方法。 来源: https://www.cnblogs.com/9030z/p/11945324.html

设计模式

谁都会走 提交于 2019-12-05 18:08:48
目录 一、创建型模式 1. 单例模式 1.1请手写一个单例 1.2单例模式的优点和应用? 1.3单例模式的缺点 2. 工厂类相关模式 2.1工厂模式、简单工厂模式、抽象工厂模式 2.2工厂模式的优点和应用 2.3工厂模式的不足 3、建造者模式 3.2建造者模式的优点和使用场景 3.3建造者模式的缺点 4、原型模式 4.1原型模式 4.2原型模式的优点和使用场景 4.3原型模式的缺点 二、结构类设计模式 1、适配器模式 1.1适配器模式 1.2适配器模式的优点和使用场景 2、桥接模式 2.1桥接模式 2.2桥梁模式的优点和应用场景 3、 装饰器模式 3.1对装饰器的理解 ,并写出一个计时器记录方法执行性能的装饰器? 3.2装饰器模式的优点和应用场景 3.3装饰器模式的缺点 4、组合模式 4.1组合模式 4.2组合模式的优点和使用场景 4.3组合模式的缺点 5、门面模式 5.1门面模式 5.3门面模式的缺点 6、享元模式 6.1享元模式 6.2享元模式的优点和使用场景 6.3享元模式的缺点 7、代理模式 7.1代理模式 7.2代理模式的优点和使用场景 7.3代理模式的缺点 三、行为类设计模式 1、策略模式 1.1策略模式 1.2策略模式的优点和应用场景 1.3策略模式的缺点 2、责任链模式 2.1责任链模式 2.2责任链模式的优点和应用场景 2.3责任链模式的缺点 3、 命令模式 3