什么是接口模式?
通过接口间接获得服务的解决方案就是接口模式;接口模式还有一些变化的形式:不止用一个接口抽象一个对象提供服务,还可以用一组接口,抽象一群对象的交互。
接口模式包括哪些模式?
适配器模式;外观模式;合成模式;桥接模式。
Abstract和interface的区别
1.abstract class在java语言中,表示一种继承关系,一个类只能使用一次继承性关系,但是一个类却可以实现多个interface
2.抽象类,可以有自己的数据成员,也可以有非抽象方法。接口中,只能有静态的不被修改的数据成员
3.接口和抽象类。设计理念不同。抽象类是is-a的关系。接口是like-a的关系
4.抽象类中所有变量都是friendly类型,其值可以重新定义,也可以重新赋值
5.接口型中变量,默认是public static final.方法默认是public
接口型模式-适配器模式
什么是适配器模式?
就是把一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法在一起工作的类能在一起工作
适配器模式的几个要素?
适配器的模式所涉及的角色包括:目标,客户,被适配器,适配器
目标:定义一个客户端使用的特定接口
客户:使用目标接口,与目标接口一致的对象和合作。
被适配者:一个现存的需要匹配的接口。
适配器:负责将被适配者的接口转换成目标的接口
适配器的优势?
适配器模式可以将一个类的接口和另一个类的接口匹配起来,使用前提是你不能或不想修改原来的适配器母接口。例如,你向第三方购买了一些类,控件,但没有源程序,这时,使用适配器模式,你可以统一对象访问接口,但客户调用需要变动
类适配器和对象适配器有哪些不同?
类适配器是通过继承适配器类来实现的,另外类适配器要实现客户端所需要的接口
对象适配器也实现了客户类需要的接口,当客户对象调用对象适配器方法的时候,对象适配器调他所包含的适配器实例的适当方法。
什么是外观模式?
外观模式定义了一个将子系统的一组接口集成在一起的高层接口,以提供一个一致的界面。通过这个界面,其他子系统可以方便地调用子系统中的功能,而忽略子系统内部发生的变化。
适用场景?
1.为一个比较复杂的子系统提供一个简单的接口
2.将客户程序与子系统的实现部分分离,提供子系统的独立性和可移植性
3.简化子系统间的依赖关系
组合模式
将对象组合成树形结构以表示部分-整体的层次机构。屏蔽了容器对象与单个对象在使用时的差异,为客户端提供统一的操作接口
使用场景
当需求中体现部分与整体层次结构时,以及希望用户可以忽略组合对象与单个对象不同时,统一使用组合结构中的所有对象时,就应该考虑用组合模式
桥接模式
实现抽象部分,与实现部分脱耦合,使他们各自可以独立变化。
适用场景
如果一个系统需要在构件的抽象化角色和具体角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系
具体角色的改变不影响客户端,或者说具体角色的改变对客户端是透明的。