菜鸟的博客

纵有疾风起,人生不言弃。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

软件设计Tutorial08

 

 实验8:适配器模式

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

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

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

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

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

实验要求:

1.  画出对应的类图;

 

复制代码
```mermaid
classDiagram
    class Animals {
        <<interface>>
        +shout()
        +move()
    }

    class Cat {
        +catches()
    }

    class Dog {
        +wang()
    }

    class CatAdapter {
        +shout()
        +move()
    }

    class DogAdapter {
        +shout()
        +move()
    }

    Animals <|.. CatAdapter
    Animals <|.. DogAdapter
    Cat <|-- CatAdapter
    Dog <|-- DogAdapter
```
复制代码

 

2.  提交源代码;

                     
 

package Tutorial08;

public interface Animals {
    public void shout();
    public void move();
}

 
 
   

package Tutorial08;

public class Cat {
    public void catches(){
        System.out.println("抓老鼠");
    }
}

 

 
 
   

package Tutorial08;

public class Dog {
    public void wang(){
        System.out.println("汪汪叫");
    }
}

 
 
   

package Tutorial08;

public class CatAdapter extends Cat implements Animals{
    @Override
    public void shout() {

    }

    @Override
    public void move() {
        System.out.print("狗砸:");
        super.catches();
    }
}

 

 
 
   

package Tutorial08;

public class DogAdapter extends Dog implements Animals{
    @Override
    public void shout() {
        System.out.print("哈吉咪:");
        super.wang();
    }

    @Override
    public void move() {
    }
}

 

 
 
   

package Tutorial08;

import com.sun.xml.internal.ws.util.xml.XmlUtil;

public class Main {
    public static void main(String[] args) {

        DogAdapter dogAdapter = new DogAdapter();
        CatAdapter catAdapter = new CatAdapter();
        dogAdapter.shout();
        System.out.println("--------------------");
        catAdapter.move();;
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


3.注意编程规范。

posted on   hhmzd233  阅读(23)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示