大三打卡(11.5)

实验8:适配器模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解适配器模式的动机,掌握该模式的结构;

2、能够利用适配器模式解决实际问题。

 
   

 


[实验任务一]:双向适配器

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。

实验要求:

1.  画出对应的类图;

 

2.  提交源代码;

ICat.java

package shipeiqi;

 

public interface ICat {

 

    public void eat();

    public void catLook();

   

}

 

IDog.java

package shipeiqi;

 

public interface IDog {

   

    public void wang();

    public void dogLook();

 

}

 

DogImpl.java

package shipeiqi;

 

public class DogImpl implements IDog{

    

    public void dogLook() {

        // TODO Auto-generated method stub

        System.out.println("狗的样子");

    }

 

    public void wang() {

        // TODO Auto-generated method stub

        System.out.println("狗汪汪叫");

    }

 

}

 

CatImpl.java

package shipeiqi;

 

public class CatImpl implements ICat{

    

    public void catLook() {

        // TODO Auto-generated method stub

        System.out.println("猫的样子");

    }

 

    public void eat() {

        // TODO Auto-generated method stub

        System.out.println("猫抓老鼠");

    }

 

}

 

Adapter.java

package shipeiqi;

 

public class Adapter implements ICat,IDog{

 

    private IDog DogImpl = null;

    private ICat CatImpl = null;

   

    /*public Adapter(IDog DogImpl ) {

        // TODO Auto-generated constructor stub

        this.DogImpl = DogImpl;

    }

    public Adapter(ICat CatImpl) {

        // TODO Auto-generated constructor stub

        this.CatImpl = CatImpl;

    }*/

   

   

    public Adapter(IDog DogImpl,ICat CatImpl) {

        // TODO Auto-generated constructor stub

        this.DogImpl = DogImpl;

        this.CatImpl = CatImpl;

    }

    @Override

    public void dogLook() {

        // TODO Auto-generated method stub

        System.out.println("狗模仿");

        CatImpl.catLook();

    }

 

    @Override

    public void wang() {

        // TODO Auto-generated method stub

        System.out.println("狗模仿");

        CatImpl.eat();

    }

 

    @Override

    public void catLook() {

        // TODO Auto-generated method stub

        System.out.println("猫模仿");

        DogImpl.dogLook();

    }

 

    @Override

    public void eat() {

        // TODO Auto-generated method stub

        System.out.println("猫模仿");

        DogImpl.wang();

    }

   

   

}

Client.java

package shipeiqi;

 

public class Client {

   

    public static void main(String[] args) {

        Adapter adapter = new Adapter(new DogImpl(),new CatImpl());

 

        adapter.catLook();

        adapter.eat();

 

        System.out.println("**************");

 

        adapter.dogLook();

        adapter.wang();

    }

 

}

3.注意编程规范。

posted @   夏季彼岸德  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示