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

实验8:适配器模式

时间:2023-11-06 09:12:56浏览次数:33  
标签:void Dog 模式 public 实验 Cat cat 适配器

实验8:适配器模式

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

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

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

 

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

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

实验要求:

1. 画出对应的类图;

2.提交源代码;

3.注意编程规范。

Adapter:

package test8;

 

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 test8;

 

public interface Cat {

    public void cry();

    public void zhua();

 

}

Dog

package test8;

 

public interface Dog {

    public void wang();

    public void run();

 

}

RealCat

package test8;

 

public class Realcat implements Cat{

    public void cry(){

        System.out.println("喵喵叫!");

    }

    public void zhua(){

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

    }

}

RealDog

package test8;

 

public class Realdog implements Dog{

    public void wang(){

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

    }

    public void run(){

        System.out.println("快快跑!");

    }

 

}

Main

package test8;

 

public class main {

 

    public static void main(String[] args) {

        Dog dog=new Adapter();

        Cat cat=new Adapter();

        dog.run();

        cat.cry();

    }

}

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

相关文章

  • 实验9:桥接模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求:1. 画出对应......
  • 实验7:单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;2.提交......
  • 实验6:原型模式
    实验6:原型模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解原型模式的动机,掌握该模式的结构;2、能够利用原型模式解决实际问题。 [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比......
  • 实验三 类与数组,指针
    Task1:point.hpp:#pragmaonce#include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);~Point()=default;intget_x()const;intget_y()const;voidshow()const;voidm......
  • 实验三
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明intmain()......
  • 实验三 类与数组、指针
     1.实验任务1point.hpp1#include<iostream>2#include"point.hpp"3#include<vector>4usingstd::vector;5usingstd::cin;6//输出vector<Point>对象内所有点的坐标7voidoutput(constvector<Point>&v){8for(aut......
  • 实验 3
    1.hpp#include<iostream>usingstd::cout;usingstd::endl;classPoint{ public: Point(intx0=0,inty0=0); ~Point()=default; intget_x()const; intget_y()const; voidshow()const; voidmove(intnew_x,intnew_y); private: ......
  • 实验三 类与数组指针
    第一个任务#pragmaonce#include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);~Point()=default;intget_x()const;intget_y()const;voidshow()const;voidmove(intnew......
  • 实验3_C语言函数应用编程
    task1.c#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声......
  • 实验3 类与数组、指针
    1、实验任务1源码Point.hpp#pragmaonce#include<iostream>usingstd::cout;usingstd::endl;classPoint{public:Point(intx0=0,inty0=0);~Point()=default;intget_x()const;intget_y()const;voidshow()const;void......