zoukankan      html  css  js  c++  java
  • 实验一 工厂方法和抽象工厂模式设计实验及其Java实现

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

    学院名称

    信息工程学院

    年级、专业、班

     

    学号

     

    姓名

     

    同组姓名

     

    课程名称

    软件架构

    实验项目名称

    实验一 工厂方法和抽象工厂模式设计实验

    指导教师

     

    实验类型

    验证         综合         设计          创新  

    成绩

     

    教师评语

     

                                                         教师签名:

                                                                     年  月 

                             

    一、实验目的

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

    二、实验环境

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

    三、实验内容

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

    2、掌握StarUML软件的基本使用方法,能够运用StarUML软件绘制工厂方法、抽象工厂模式的UML类图和模式结构图。

    3、学习利用java语言实现工厂方法、抽象工厂模式,并确保代码运行正确无误。

    四、实验步骤

    1、熟悉StarUML的常用功能。

    2、使用StarUML绘制类图;

    3、工厂方法模式设计与实现:“海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) ”。使用Rose绘制工厂方法模式结构图,并运用面向对象编程语言实现该模式。

    4、抽象工厂模式设计与实现:“电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、其型号并不一定相同。”根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程并绘制相应的类图,并运用面向对象编程语言实现该模式。

    工厂方法模式设计与实现:

    package AIR;

    public interface AIR

    {

          void work();

    }

    package AIR;

    public class HaierAIR implements AIR

    {

          public void work()

          {

                 System.out.println("HaierAirCondition working!");

          }

    }

    package AIR;

    public class MideaAIR implements AIR

    {

          public void work()

          {

                 System.out.println("MideaAirCondition working!");

          }

    }

    package AIR;

    public interface AIRFactory

    {

          AIR produceAIR();

    }

    package AIR;

    public class HaierAIRFactory implements AIRFactory

    {

          public HaierAIR produceAIR()

          {

                 System.out.println("HaierAirCondition produced!");

                 return new HaierAIR(); 

          }

    }

    package AIR;

    public class MideaAIRFactory implements AIRFactory

    {

          public MideaAIR produceAIR()

          {

                 System.out.println("MideaAirCondition produced!");

                 return new MideaAIR();

          }

    }

    package AIR;

    public class Test {

           public static void main(String[] args) {

               AIRFactory AIRfactory=new HaierAIRFactory();

               AIR air=AIRfactory.produceAIR();

              

               AIRfactory=new MideaAIRFactory();

               air=AIRfactory.produceAIR();

           }

    }

     运行结果:

     

    抽象工厂模式设计与实现:

    package Computer;

     

    public interface CPU {

           void discribe();

     

    }

    package Computer;

     

    public interface RAM {

           void discribe();

     

    }

    package Computer;

     

    public interface ComputerAccessoriesFactory {

                  CPU produceCPU();

                  RAM produceRAM();

     

    }

    package Computer;

     

    public class PcCPU implements CPU

    {

           public void discribe()

           {

                  System.out.println("This is produce the PC_CPU");

                  }

    }

    package Computer;

     

    public class PcRAM implements RAM

    {

           public void discribe()

           {

                  System.out.println("PcRAM");

           }

    }

    package Computer;

     

    public  class PcFactory implements ComputerAccessoriesFactory

    {

           public PcCPU produceCPU() {

                  System.out.println("PC_CPU produced! >_<");

                  return new PcCPU();

           }

     

           public PcRAM produceRAM() {

                  System.out.println("PC_RAM produced! >_<");

                  return new PcRAM();

           }

    }

    package Computer;

     

    public class MacCPU implements CPU

    {

           public void discribe()

           {

                  System.out.println("This is produce the Mac_CPU");

           }

    }

    package Computer;

     

    public class MacRAM implements RAM

    {

           public void discribe()

           {

                  System.out.println("MacRAM");

           }

    }

    package Computer;

     

    public  class MacFactory implements ComputerAccessoriesFactory{

           public MacCPU produceCPU() {

                  System.out.println("MacCPU produced! ~_~");

                  return new MacCPU();

           }

     

           public MacRAM produceRAM() {

                  System.out.println("MacARM produced! ~_~");

                  return new MacRAM();

           }

    }

    package Computer;

     

    public class Test {

     

           public static void main(String[] args) {

                  // TODO Auto-generated method stub

                  ComputerAccessoriesFactory a = new PcFactory();

                  ComputerAccessoriesFactory b = new MacFactory();

            CPU cpu = a.produceCPU();

            RAM ram = b.produceRAM();

            cpu.discribe();

            ram.discribe();

           }

    }

     运行结果:

  • 相关阅读:
    gulp使用技巧-删除node_modules文件夹,解决目录层次太深删除报错的问题
    PHP学习-链接数据库
    教程笔记《JavaScript深入浅出》
    读书笔记《高性能网站建设指南》之雅虎军规
    CSS3边框图片-像素虚边的问题
    WebStorm设置手机测试服务器-局域网内其他设备访问
    gulp的安装和使用
    H5canvas赛车游戏-基于lufylegend引擎
    WebStorm设置左侧菜单栏背景色和样式
    基于jquery的-获取短信验证码-倒计时
  • 原文地址:https://www.cnblogs.com/luofay/p/6099034.html
Copyright © 2011-2022 走看看