实验二 适配器模式和桥接模式设计实验及其Java实现

开课实验室:  开课时间: 2016年**月**日            实验报告:    年  月   日 

学院名称

 

年级、专业、班

 

学号

 

姓名

 

同组姓名

 

课程名称

软件架构

实验项目名称

实验二 适配器模式和桥接模式设计实验

指导教师

 

实验类型

验证         综合         设计          创新  

成绩

 

教师评语

 

                                                     教师签名:

                                                                 年  月 

             

一、实验目的

通过本实验的学习,了解软件体系结构与软件体系设计的基本思想,掌握工厂方法、抽象工厂模式等软件体系结构的设计与实现方法,利用Rose软件绘制软件体系的静态结构图,并利用面向对象的程序设计语言模拟实现工厂方法、抽象工厂模式,为今后软件开发与设计的学习奠定基础。

二、实验环境

 实验仪器为PC机一台,安装StarUML软件和MyEclipse软件。

三、实验内容

1、熟悉StarUML软件的界面和基本操作。

2、掌握StarUML软件的基本使用方法,能够运用StarUML软件绘制适配器模式、桥接模式的UML类图和模式结构图。

3、学习利用java语言实现代理适配器模式、桥接模式,并确保代码运行正确无误。

四、实验步骤

1、熟悉StarUML的常用功能。

2、使用StarUML绘制类图;

3、适配器模式设计与实现:“一个软件团队开发绘图系统,设计了圆对象(Circle)、矩形对象(Rectangle),线对象(Line)都支持Draw()函数,即可以通过Draw()函数绘制图形。为了加快项目进度,将角度对象(Angle)绘制功能交给了合作团队实现。但合作团队将角度对象绘制函数定为了DrawAngle()。绘图系统提供给用户后,用户不满意,希望能统一的调用,不用记太多命令。”使用StarUML绘制适配器模式结构图,并运用面向对象编程语言实现该模式。

4、桥接模式设计与实现:“一个咖啡店可以提供大杯(JorumCoffee)、中杯(MediumCoffee)、小杯(SmallCoffee)的咖啡(Coffee),为了满足不同用户的口味,在咖啡中可以添加牛奶(Milk),或者糖(Sugar),或者柠檬(Lemon),提供给用户不同口味的组合,如大杯咖啡加牛奶,中杯咖啡加糖,小杯咖啡加柠檬,小杯咖啡加糖等。”使用桥接模式设计该系统并绘制相应的类图,并用面向对象编程语言实现该模式。

适配器模式设计与实现:

 《实验二 适配器模式和桥接模式设计实验及其Java实现》

package Adapter;

public interface Draw {

      void Draw();

}

package Adapter;

public class Circle implements Draw {

public void Draw() {

System.out.println(“Draw a Circle”);

}

}

package Adapter;

public class Line implements Draw {

public void Draw() {

System.out.println(“Draw a Line”);

}

}

package Adapter;

public class Angle {

      public void DrawAngle(){

             System.out.println(“Draw a Angle”);

      }

}

package Adapter;

public class AngleAdapter implements Draw {

private Angle angle;

public AngleAdapter(Angle a)

{

         this.angle = a;

}

public void Draw() {

angle.DrawAngle();    

}

}

package Adapter;

public class Test {

      public static void main(String[] args) {

             // TODO Auto-generated method stub

             Rectangle rec = new Rectangle();

        Circle cir = new Circle();

        Line lin = new Line();

        Angle an = new Angle();

        rec.Draw();

        cir.Draw();

        lin.Draw();

        AngleAdapter ad = new AngleAdapter(an);

        ad.Draw();

      }

}

运行结果:

 《实验二 适配器模式和桥接模式设计实验及其Java实现》

桥接模式模式设计与实现:

 《实验二 适配器模式和桥接模式设计实验及其Java实现》

package Bridge;

 

public class Coffee {

       protected Taste taste;

       public Taste getTaste() {

       return taste;

       }

       public void setTaste(Taste taste) {

       this.taste = taste;

       }

       public void add(){

       System.out.println(“I have a cup of coffee”);

       }

}

package Bridge;

 

public class JorumCoffee extends Coffee {

public void add(){

System.out.println(“I have a cup of JorumCoffee  “+taste.Add()+”  in”);

}

}

package Bridge;

 

public class MediumCoffee extends Coffee {

public void add(){

System.out.println(“I have a cup of MediumCoffee  “+taste.Add()+”  in”);

}

}

package Bridge;

 

public class SmallCoffee extends Coffee {

public void add(){

System.out.println(“I have a cup of SmallCoffee  “+taste.Add()+”  in”);

}

}

package Bridge;

 

public abstract class Taste {

       public abstract String Add();

 

}

package Bridge;

 

public class Lemon extends Taste {

public String Add() {

return “Lemon”;

}

}

package Bridge;

 

public class Milk extends Taste {

public String Add() {

return “Milk”;

}

}

package Bridge;

 

public class Sugar extends Taste {

public String Add() {

return “Sugar”;

}

}

package Bridge;

 

public class Test {

 

       public static void main(String[] args) {

              // TODO Auto-generated method stub

              Milk milk=new Milk();

             Sugar sugar = new Sugar();

             Lemon lemon = new Lemon();

             Coffee cof=new JorumCoffee();

             cof.setTaste(milk);

             cof.add();

             Coffee mc = new MediumCoffee();

             mc.setTaste(sugar);

             mc.add();

             Coffee sc = new SmallCoffee();

             sc.setTaste(lemon);

             sc.add();

       }

}

运行结果:

 《实验二 适配器模式和桥接模式设计实验及其Java实现》

    原文作者:Ladouli
    原文地址: https://www.cnblogs.com/luofay/p/6099047.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞