首页 > 其他分享 >实验8:适配器模式

实验8:适配器模式

时间:2024-11-05 15:11:32浏览次数:2  
标签:void dog Dog 模式 public 实验 Cat cat 适配器

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

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

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

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

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

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

1、类图

 

源代码

Adapter.java

package org.example;

public class Adapter implements Cat,Dog{
    private Cat cat=new Realcat();
    private Dog dog=new Realdog();
    public void setcat(Cat _cat){
        cat=_cat;
    }
    public void setdog(Dog _dog){
        dog=_dog;
    }
    public void zhua(){}
    public void wang(){}
    public void run(){
        System.out.println("小狗学小猫:");
        cat.zhua();
    }
    public void cry(){
        System.out.println("小猫学小狗:");
        dog.wang();
    }
}

Cat

package org.example;

public interface Cat {
    public void cry();
    public void zhua();

}

Dog

package org.example;

public interface Dog {
    public void wang();
    public void run();

}

Realcat.java

package org.example;

public class Realcat implements Cat{
    public void cry(){
        System.out.println("喵喵叫!");
    }
    public void zhua(){
        System.out.println("抓老鼠!");
    }
}

Realdog.java

package org.example;

public class Realdog implements Dog{
    public void wang(){
        System.out.println("汪汪叫!");
    }
    public void run(){
        System.out.println("快快跑!");
    }

}

Main.java

package org.example;

public class main {

    public static void main(String[] args) {
        Dog dog=new Adapter();
        Cat cat=new Adapter();
        dog.run();
        cat.cry();
    }
}

 

3、运行截图

 

标签:void,dog,Dog,模式,public,实验,Cat,cat,适配器
From: https://www.cnblogs.com/yuanxinglan/p/18528049

相关文章

  • 11.4实验9:桥接模式
    [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求:1. 画出对应的类图;  2.提交源代码;publicclassAsphaltRoadextendsRoad{   publicAsphaltRoad(Vehiclevehicle){       super(ve......
  • 实验7:单例模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。[实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1.画出对应的类图;2.提交源代码;3.注意编程规......
  • 实验四 C语言数组应用编程
    实验四C语言数组应用编程实验任务1——内存地址#include<stdio.h>#defineN4#defineM2voidtest1(){ intx[N]={1,9,8,4}; inti; //输出数组x占用的内存字节数 printf("sizeof(x)=%d\n",sizeof(x)); //输出每个元素的地址、值 for(i=0;i<N;+......
  • 享元模式及其运用场景:结合工厂模式和单例模式优化内存使用
    介绍享元模式(FlyweightPattern)是一种结构型设计模式,它通过共享对象来减少内存使用,尤其是对于大量相似对象的场景。享元模式通常与工厂模式和单例模式结合使用,从而有效地控制和复用对象的创建。在享元模式中,享元对象的核心思想是将不可变的部分(共享的状态)和可变的部分(外部......
  • 《图解设计模式》 第九部分 避免浪费
    第二十章Flyweight模式publicclassBigcharFactory{//这里对使用到的内容进行了缓存privateHashMappool=newHashMap();//有则直接取,无则创建并保存到缓存。publicsynchronizedBigChargetBigChar(charcharname){BigCharbc=(BigChar)pool.get("......
  • 《图解设计模式》 第八部分 管理状态
    第17章Observer模式publicabstractclassNumberGenerator{privateArrayListobserverList=newArrayList();/*部分代码省略*///加入基础类,当需要通知的时候通知publicvoidaddObserver(Observerobserver){observerList.add(observer);}pub......
  • 装饰者模式
    目录装饰者模式的概念装饰者模式的主要结构1.基础饮品类(Tea):2.具体饮品类(OriginalMilkTea):3.装饰者基类(TeaDecorator):4.具体装饰者(PearlDecorator和CreamDecorator):5.主函数:总结装饰者模式的概念    装饰者模式是指在不改变原有对象的基础上,将功能附加在对......
  • 常见设计模式-工厂模式
    文章目录1.简单工厂模式2.工厂方法模式3.抽象工厂模式设计模式七大原则工厂模式是一种创建型设计模式,它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。工厂模式让一个类的实例化延迟到其子类。工厂模式主要分为三种:简单工厂模式、工厂方法模式......
  • 《图解设计模式》 第七部分 简单化
    Facade模式publicclassMain{publicstaticvoidmain(String[]args){PageMaker.makeWelcomePage("[email protected]","welcom.html");}}publicclassPageMaker{publicstaticvoidmakeWelcompage(Stringmailaddr,Stringfile......