实验一 工厂方法和抽象工厂模式设计实验及其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();

       }

}

 运行结果:

posted @ 2016-11-24 18:56  Ladouli  阅读(4884)  评论(1编辑  收藏  举报