适配器(Adapter)模式将一个类的接口转换成客户希望的另外一个接口,能够使得原本由于接口不兼容而不能一起工作的那些类可以协同工作了。
package JAVA_Project_01_05;
/*
适配器(Adapter)模式将一个类的接口转换成客户希望的另外一个接口,能够使得原本由于接口不兼容而不能一起工作的那些类可以协同工作了。
*/
/*
实现适配器模式的技术要点如下:
· 目标类是Adapter的父类,Adapter需要继承目标类,以具备目标类提供的功能。
· Adapter是适配器模式中的适配者,它本身并不实现任何功能,但是能提供功能,即它能将其他类的功能据为己有。
· Adapter是适配器模式中的被适配者,Adapter需要实现Adapter的接口,以提供Adapter提供的功能。在Adapter的构造方法中,传入一个具体的Adapter对象,在实现Adapter接口定义的方法中,调用Adapter对象的相应方法。
*/
interface Shape {//定义形状接口
public void setPosition(int position);//设置位置
public int getPositioin();//获得位置
public void move();//移动位置
public void display();//展示形状
}
class Oblong implements Shape {//定义一个矩形形状
int position;
public void setPosition(int position) {
this.position = position;
}
public int getPositioin() {
return this.position;
}
public void move() {
System.out.println("矩形图形已经移动到:" + 3 * position);
}
public void display() {
System.out.println("矩形图形的位置:" + position);
}
}
class Circular {//定义一个圆形形状,没有实现Shape接口
int position;
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public void display() {
System.out.println("圆形图形的位置:" + position);
}
}
class CircularAdapter implements Shape {
private Circular circular;
public CircularAdapter() {
circular = new Circular();
}
public void display() {
circular.display();
}
public int getPositioin() {
return circular.getPosition();
}
public void move() {//为Circle扩展move()方法
System.out.println("圆形图形已经移动到:" + 3 * getPositioin());
}
public void setPosition(int position) {
circular.setPosition(position);
}
}
public class TextAdapter {//操作适配器模式的类
public static void main(String[] args) {//Java程序主入口处
Oblong oblong = new Oblong();//实例化对象
oblong.setPosition(100);//设置位置
oblong.display();//显示位置
oblong.move();//移动位置
CircularAdapter circular = new CircularAdapter();//实例化适配器
circular.setPosition(200);//设置位置
circular.display();//显示位置
circular.move();//移动位置
}
}
/*
程序中定义一个接口、一个接口的实现类、普通类以及普通类的适配器类。普通类Circular看作是目标类,CircularAdapter是Adapter,
Shape是Adaptee角色。将CircularAdapter和目标(Circular)进行适配,CircularAdapter将具有Shapepg定义的所有功能。
定义CircularAdapter来完成没有实现的方法,而不用重新写一个Circular类。Adapter模式实际上是将组合方法和继承方法综合运用。
*/
来源:CSDN
作者:我不是猫叔
链接:https://blog.csdn.net/JN_Cat/article/details/103995408