JAVA几何图形(适配器模式)

适配器模式通过转换接口使不兼容的类能够协同工作。它将一个类的接口转化为客户期望的另一接口,解决了接口不兼容问题。
摘要由CSDN通过智能技术生成

适配器(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模式实际上是将组合方法和继承方法综合运用。
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值