首页 > 其他分享 >每日随笔——桥接模式

每日随笔——桥接模式

时间:2023-11-14 23:33:36浏览次数:31  
标签:Road 桥接 每日 void Transport new 随笔 public transport

[实验任务一]:两个维度的桥接模式

用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

类图:

 

源码:

BUS

package sc9;


public class Bus implements Transport {
    @Override
    public void run() {
        System.out.print("Bus");
    }
}
Car
package sc9;

public class Car implements Transport{
    @Override
    public void run() {
        System.out.print("Car");
    }
}
Road
package sc9;

public abstract class Road {
    protected Transport transport;
    public void setTransport(Transport tr) {
        this.transport=tr;
    }
    public abstract void drive();
}
Transport
package sc9;

public interface Transport {
    public void run();
}
shuini
package sc9;

public class Shuini extends Road{
    public void drive() {
        transport.run();
        System.out.println("行驶在水泥路");
    }
}
main
package sc9;

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Transport transport = null;
        Road road = null;
        System.out.println("请选择:1、Car/水泥路  2、Car/沥青路  3、Bus/水泥路  4、Bus/沥青路");
        Scanner input=new Scanner(System.in);
        int i=input.nextInt();
        if(i==1) {
            transport=(Transport)new Car();
            road=(Road)new Shuini();
        }else if(i==2) {
            transport=(Transport)new Car();
            road=(Road)new LiQing();
        }else if(i==3){
            transport=(Transport)new Bus();
            road=(Road)new Shuini();
        }else if(i==4) {
            transport=(Transport)new Bus();
            road=(Road)new LiQing();
        }else {
            System.out.println("输入无效!");
        }
        road.setTransport(transport);
        road.drive();
    }
}
LiQing
package sc9;

public class LiQing extends Road{
    public void drive() {
        transport.run();
        System.out.println("行驶在沥青路");
    }
}

 

标签:Road,桥接,每日,void,Transport,new,随笔,public,transport
From: https://www.cnblogs.com/jiacheng-712/p/17815821.html

相关文章

  • 11.14每日总结
    目中在搜索商品时,在没有搜索按钮的情况下,刚开始是写的当用户输入完成后,input框失去焦点blur事件处理,产品提议用户输入后,按enter回车键返回搜索结果。vue中失去焦点事件写法:@blurvue中enter回车键事件写法:@keyup.enter.native......
  • 软件设计模式学习每日总结-第二天
    回顾第一天:昨天学习的设计模式中的uml类图,还记得类与类的关系有关联(聚合、组合),依赖,继承,实现,其中依赖的耦合度最小,而继承的耦合度最大,而软件设计追求的就是高内聚,低耦合。还学习各种软件设计原则。第二天创建型模式:将创建和使用分离,使用者不需要关注创建的细节。简单工厂模式:......
  • 每日总结11.14
    实验2熟悉常用的HDFS操作  1.实验目的(1)理解HDFS在Hadoop体系结构中的角色;(2)熟练使用HDFS操作常用的Shell命令;(3)熟悉HDFS操作常用的JavaAPI。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3;(3)JDK版本:1.8;(4)JavaIDE:Eclipse。3.实验步骤(一)编......
  • 每日总结11.14
    (二)编程实现一个类“MyFSDataInputStream”,该类继承“org.apache.hadoop.fs.FSDataInputStream”,要求如下:实现按行读取HDFS中指定文件的方法“readLine()”,如果读到文件末尾,则返回空,否则返回文件一行的文本。首先启动hdfs集群然后创建maven项目MyFSDataInputStream类:package......
  • 【每日例题】蓝桥杯 c++ 被替换的身份证
    被替换的身份证题目蓝桥杯被替换的身份证思路分析斗地主简化版?!废话少说,四种情况ShallowDream一开始出对子或者王炸,ShallowDream胜ShallowDream一开始出单,Joker出王炸,Joker胜ShallowDream一开始出单,Joker手中最大的牌比ShallowDream手中的牌都大,Joker胜ShallowDream一开......
  • 知识点复习-每日一读
    1.编译:编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译(Compile)。(C程序->二进制)2.链接:链接(Link)其实就是一个“打包”的过程,它将所有二进制形式的目标文件和系统组件组合成一个可执行文件,编译只是将我们自己写的代码......
  • 11.14每日总结
    今天完成了大型数据库的实验二,在第(二)问的时候出现了问题:出现的问题:在做(二)开始使用eclipse去进行编译,但是建的是普通项目,出现了如下错误:    解决方案(列出遇到的问题和解决办法,列出没有解决的问题):对上述问题呢一直在解决,我本人心里还是想用eclipse完成,但是......
  • 学习随笔(设计模式:装饰模式)
    内容今天学习了新的设计模式,装饰模式。装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。收获1.当我们在设计软件时,考虑使用基类和派生类的时候,就可以考虑是否可以使用装饰模式,因为装饰模式比生成子类更加灵活2.当我们对一个已有的类添......
  • Spring5学习随笔-Spring5的第一个程序(环境搭建、日志框架整合)
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】第二章、第一个Spring程序1.软件版本1.JDK1.8+2.Maven3.5+3.IDEA2018+4.SpringFramework5.1.4官网:www.spring.io2.环境搭建Spring的jar包......
  • 11.14每日总结
    今天早上课上进行了大型数据库的实验二1.实验目的(1)理解HDFS在Hadoop体系结构中的角色;(2)熟练使用HDFS操作常用的Shell命令;(3)熟悉HDFS操作常用的JavaAPI。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3;(3)JDK版本:1.8;(4)JavaIDE:Eclipse。3.实验步骤......