软件设计模式(实验六)—— 桥接模式的应用(Java)

实验六 桥接模式的应用(Java实现)

一、实验目的

(1) 掌握桥接模式(Bridge)的特点
(2) 分析具体问题,使用桥接模式进行设计。

二、实验内容和要求

一个咖啡店可以提供大杯(JorumCoffee)、中杯(MediumCoffee)、小杯(SmallCoffee)的咖啡(Coffee),为了满足不同用户的口味,在咖啡中可以添加牛奶(Milk),或者糖(Sugar),或者柠檬(Lemon),提供给用户不同口味的组合,如大杯咖啡加牛奶,中杯咖啡加糖,小杯咖啡加柠檬,小杯咖啡加糖等。应用桥接模式,用C#或Java、C++控制台应用程序实现该设计。绘制该模式的UML图。

三、源代码

1.Additives接口

interface Additives{
    public void add();
}

2.Coffee接口

interface Coffee{
    public void add(Additives additives);
    public void drink();
}

3.Milk 类

class Milk implements Additives{
    @Override
    public void add() {
        System.out.println("牛奶");
    }
}

4.Sugar 类

class Sugar implements Additives{
    @Override
    public void add() {
        System.out.println("糖");
    }
}

5.Lemon 类

class Lemon implements Additives{
    @Override
    public void add() {
        System.out.println("柠檬");
    }
}

6.smallCoffee 类

class smallCoffee implements Coffee{
    private Additives additives;
    @Override
    public void add(Additives additives) {
        this.additives=additives;
    }
    @Override
    public void drink() {
        additives.add();
        System.out.println("小咖啡");
    }
}

7.mediumCoffee 类

class mediumCoffee implements Coffee{
    private Additives additives;
    @Override
    public void add(Additives additives) {
        this.additives=additives;
    }
    @Override
    public void drink() {
        additives.add();
        System.out.println("中咖啡");
    }
}

8.bigCoffee 类

class bigCoffee implements Coffee{
    private Additives additives;
    @Override
    public void add(Additives additives) {
        this.additives=additives;
    }
    @Override
    public void drink() {
        additives.add();
        System.out.println("大咖啡");
    }
}

9.测试类

public class Test {
    public static void main(String[] args){
        Milk milk = new Milk();
        Sugar sugar = new Sugar();
        Lemon lemon = new Lemon();
        smallCoffee small = new smallCoffee();
        mediumCoffee medium = new mediumCoffee();
        bigCoffee big = new bigCoffee();

        milk.add();
        sugar.add();
        lemon.add();
        small.add(sugar);
        medium.add(lemon);
        big.add(milk);
        small.drink();
        medium.drink();
        big.drink();
    }
}

四、UML图

软件设计模式(实验六)—— 桥接模式的应用(Java)_第1张图片

你可能感兴趣的:(#,软件设计模式实验,java,设计模式)