适配器模式详解 适配器模式( 二 )


将一个类的接口 , 转换成客户期望的另一个接口 。适配器让原本接口不兼容的类可以合作无间 。
将一个类或多个类的接口编程客户所期望一个接口 。
适配器模式包含两种:类适配器 , 对象适配器 , 分别对应继承 , 组合实现 。
软件设计模式主要有哪几种软件设计模式主要有以下三大类共23种:
一、创建型模式:
1、工厂方法模式
工厂方法模式的创建是因为简单工厂模式有一个问题 , 在简单工厂模式中类的创建依赖工厂类 , 如果想要拓展程序 , 必须对工厂类进行修改 , 这违背了开闭原则 , 所以就出现了工厂方法模式 , 只需要创建一个工厂接口和多个工厂实现类 。
子类可以自己决定实例化哪一个工厂类 , client类针对抽象接口进行编程 , 如果需要增加新的功能 , 继承工厂接口 , 直接增加新的工厂类就可以了 , 创建过程延迟到子类中进行 , 不需要修改之前的代码 , 满足了开闭原则 , 达到灵活地生产多种对象 。
2、抽象工厂模式
抽象工厂模式是提供一个创建一系列相关或相互依赖对象的接口 , 而无需指定它们具体的类 。区别于工厂方法模式的地方 , 工厂方法模式是创建一个工厂 , 可以实现多种对象;而抽象工厂模式是提供一个抽象工厂接口 , 里面定义多种工厂 , 每个工厂可以生产多种对象 。
前者的重点在于"怎么生产" , 后者的重点在于"生产哪些";前者是一个抽象产品类 , 可以派生出多个具体产品类 , 后者是多个抽象产品类 , 每个抽象产品类可以派生出多个具体产品类 。
/iknow-pic.cdn.bcebos.com/c8ea15ce36d3d53986f626223487e950342ab003"target="_blank"class="ikqb_img_alink"/iknow-pic.cdn.bcebos.com/c8ea15ce36d3d53986f626223487e950342ab003?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/
3、单例模式
单例模式能保证一个类仅有一个实例 , 并提供一个访问它的全局访问点 , 同时在类内部创造单一对象 , 通过设置权限 , 使类外部无法再创造对象 。单例对象能保证在一个JVM中 , 该对象只有一个实例存在 。
在创建的时候 , 省去了new操作符 , 降低了系统内存的使用频率 , 减轻了系统的压力 。同时单例模式保证在一个jvm中仅存在一个实例的好处就在于好比一个军队当中只会存在一个最高级别的军官来指挥整个军队 , 这样才能保证独立控制整个过程 , 否则如果出现多个 , 肯定会杂乱无序 。
4、建造者模式
建造者模式是将一个复杂的构建与其表示相分离 , 使得同样的构建过程可以创建不同的表示 。在程序当中就是将一些不会变的基本组件 , 通过builder来进行组合 , 构建复杂对象 , 实现分离 。
这样做的好处就在于客户端不必知道产品内部组成的细节;同时具体的建造者类之间是相互独立的 , 对系统的扩展非常有利 , 满足开闭原则;由于具体的建造者类是独立的 , 因此可以对建造过程逐步细化 , 而不对其他的模块产生任何影响 。
5、原型模式
原型模式是用原型实例指定创建对象的种类 , 并且通过拷贝这些原型创建新的对象 。其实就是将对象复制了一份并返还给调用者 , 对象需继承Cloneable并重写clone()方法 。原型模式的思想就是将一个对象作为原型 , 对其进行复制、克隆 , 产生一个和原对象类似的新对象 。
分为浅复制和深复制 , 前者是将一个对象复制后 , 基本数据类型的变量都会重新创建 , 而引用类型 , 指向的还是原对象所指向的;后者是将一个对象复制后 , 不论是基本数据类型还有引用类型 , 都是重新创建的 。
二、结构型模式:
1、适配器模式
适配器模式是使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 , 衔接两个不兼容、独立的接口的功能 , 使得它们能够一起工作 , 适配器起到中介的作用 。
2、装饰模式
装饰器模式是动态地给一个对象添加一些额外的职责 , 给一个对象增加一些新的功能 , 要求装饰对象和被装饰对象实现同一个接口 , 装饰对象持有被装饰对象的实例 。除了动态的增加 , 也可以动态的撤销 , 要做到动态的形式 , 不可以用继承实现 , 因为继承是静态的 。

秒懂生活扩展阅读